Repository navigation
1.0.0
PHP QUIC Extension v1.0.0
Native C extension providing QUIC client transport (RFC 9000) using OpenSSL 3.2+ QUIC API.
Features
QuicConnectionclass with full TLS 1.3 configuration (ALPN, peer verification, ciphersuites, client certificates)QuicStreamclass supporting bidirectional and unidirectional streams- Stream multiplexing with proper flow control
quic_connect()convenience function- Connection statistics tracking
- GC-safe reference counting between connections and streams
Requirements
- PHP 8.4+
- OpenSSL 3.2+ with QUIC support
Test Suite
55 phpt tests covering:
- Core functionality (connect, streams, TLS options, ALPN, timeouts, stats)
- Protocol compliance regression tests derived from bugs in msquic, quic-go, quiche, ngtcp2, and OpenSSL
- Security audit tests (serialization safety, input validation, boundary values, GC safety, resource leak detection)
Known Issues
acceptStream()timeout logic is inverted (non-blocking flag sent for blocking case and vice versa)serialize()/unserialize()not denied on QUIC objects (dangling pointer risk)connect()afterclose()leaks the previous SSL object and file descriptorgetPeerCertificate()leaks azend_stringon each call- Client-only (OpenSSL 3.2 limitation; server support requires OpenSSL 3.5+)