Skip to content

1.0.0

Choose a tag to compare

@DigitalCyberSoft DigitalCyberSoft released this 13 Mar 10:39
· 8 commits to main since this release

PHP QUIC Extension v1.0.0

Native C extension providing QUIC client transport (RFC 9000) using OpenSSL 3.2+ QUIC API.

Features

  • QuicConnection class with full TLS 1.3 configuration (ALPN, peer verification, ciphersuites, client certificates)
  • QuicStream class 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() after close() leaks the previous SSL object and file descriptor
  • getPeerCertificate() leaks a zend_string on each call
  • Client-only (OpenSSL 3.2 limitation; server support requires OpenSSL 3.5+)