Download the PHP package dkkoma/php-grpc-lite without Composer
On this page you can find all versions of the php package dkkoma/php-grpc-lite. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download dkkoma/php-grpc-lite
More information about dkkoma/php-grpc-lite
Files in dkkoma/php-grpc-lite
Package php-grpc-lite
Short Description Source-built grpc extension for PHP: php-grpc-lite HTTP/2 transport drop-in candidate for ext-grpc
License MIT
Homepage https://github.com/dkkoma/php-grpc-lite
Informations about the package php-grpc-lite
php-grpc-lite
php-grpc-lite is a source-built PHP extension aiming to be a drop-in replacement for official ext-grpc in selected client workloads.
Current review status:
- High-level PHP
Grpc\*wrapper classes are provided by the officialgrpc/grpcComposer package. - HTTP/2 transport is provided by this repository's source-build extension at the repository root.
- The source-built grpc extension builds a PHP module named
grpcand producesgrpc.so. - Official
ext-grpcand this source-built grpc extension must not be loaded at the same time. - Runtime transport is the built-in nghttp2 HTTP/2 implementation.
- Release readiness is still gated by C extension memory/lifecycle QA.
- Unary and server streaming are the current compatibility scope. Client streaming and bidirectional streaming are not implemented yet.
Performance snapshot
Latest representative local benchmarks: 2026-05-14 for Spanner RPC shape, 2026-05-05 / 2026-05-06 for broader unary and streaming payload sweeps. Environment: Docker compose on OrbStack, Go gRPC test server, php-grpc-lite HTTP/2 transport vs official ext-grpc. These numbers are workload guidance, not a portability guarantee; rerun the benchmark suite on release hardware for final decisions. Full data: docs/benchmarks/spanner-shape-2026-05-14.md, docs/benchmarks/spanner-real-client-2026-05-14.md, docs/benchmarks/native-major-2026-05-05.md, and docs/benchmarks/native-hardening-2026-05-06.md.
| case | php-grpc-lite p50 | php-grpc-lite p99 | ext-grpc p50 | ext-grpc p99 | result |
|---|---|---|---|---|---|
| unary 100B | 28.1μs | 67.8μs | 56.6μs | 103.6μs | php-grpc-lite faster |
| unary 100KiB | 77.9μs | 2,243.1μs | 106.7μs | 1,491.2μs | p50 faster; p99 slower |
| Spanner shape: BeginTransaction unary | 31.6μs | 128.6μs | 59.2μs | 393.4μs | php-grpc-lite faster |
| Spanner shape: Commit unary | 28.2μs | 83.4μs | 54.9μs | 107.0μs | php-grpc-lite faster |
| Spanner shape: SELECT streaming | 28.9μs | 70.9μs | 62.3μs | 115.6μs | php-grpc-lite faster |
| Spanner shape: DML insert streaming | 26.1μs | 69.0μs | 68.1μs | 110.4μs | php-grpc-lite faster |
| Spanner shape: DML update streaming | 26.1μs | 72.5μs | 68.5μs | 110.3μs | php-grpc-lite faster |
| Spanner shape: DML delete streaming | 27.3μs | 65.4μs | 71.1μs | 128.9μs | php-grpc-lite faster |
| server streaming 100x100B | 135.8μs | 538.8μs | 334.1μs | 796.8μs | php-grpc-lite faster |
| server streaming 100x10KiB | 1,111.2μs | 2,255.9μs | 1,452.6μs | 1,974.3μs | p50 faster; p99 slower |
spanner-shape is the primary Spanner-oriented performance signal because it keeps the RPC shape close to Spanner while avoiding emulator and GAX noise. spanner-real-client is kept as a high-level google/cloud-spanner smoke/regression benchmark rather than a transport microbenchmark.
Large bulk streaming remains the main case that should be measured against the actual workload before choosing this extension.
Install
Install build dependencies first. Debian/Ubuntu example:
Install the extension with PIE:
Then enable extension=grpc if PIE did not enable it automatically.
PIE uses Composer's default package download path. For this package, Composer prefers the Packagist/GitHub dist zip for the stable release. Ensure a zip extractor is available: unzip is the recommended Debian/Ubuntu package; PHP ext-zip or 7z can also satisfy Composer. Without any zip extractor, Composer falls back to source download and may require git.
Applications that use generated stubs or gax clients should also install the official PHP wrapper dependency with Composer:
For local source builds without PIE:
Full install notes, verification commands, rollback notes, and large-streaming guidance are in docs/guides/install-native-extension.md. The documentation entrypoint is docs/README.md.
Development
Run tests in Docker:
check-c-static-analysis.sh runs the C extension static analysis. check-c-unit.sh runs focused C unit tests for pure protocol helpers and status taxonomy. check-phpt.sh builds the root extension, verifies the local Go test-server ports, and runs PHPT tests for the extension surface, transport control semantics, TLS/mTLS, and resource limits. check-crash-ub.sh runs generated-input checks under ASan/UBSan to detect crashes and undefined behavior. check-c-coverage.sh runs the C unit and PHPT gates with gcov/lcov instrumentation and writes reports under var/coverage/c-lcov/. PHPUnit remains the broader integration/release compatibility suite.
GitHub Actions Native QA runs purpose-specific jobs on push and pull request: Static analysis, NTS PHPT + C coverage, ZTS PHPT, and Crash/UB check. Coverage is uploaded as a workflow artifact and to Codecov from var/coverage/c-lcov/codecov.info; configure CODECOV_TOKEN unless the Codecov repository setting allows tokenless public uploads.
Build/load the source-built grpc extension in Docker:
Verify source install on the official Docker Hub php image:
Verify PIE install on the official Docker Hub php image:
To verify a specific released package from Packagist:
Design and QA status:
docs/README.mddocs/SPEC.mddocs/design/http2-transport-decision.mddocs/verification/release-qa-checklist.md