nethergamesmc / quiche
A Quiche-based QUIC implementation for PHP
Installs: 698
Dependents: 0
Suggesters: 0
Security: 0
Stars: 12
Watchers: 2
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^8.2
- ext-ffi: *
- ext-sockets: *
- ircmaxell/ffime: dev-master
Requires (Dev)
- phpstan/phpstan: 1.10.56
- phpunit/phpunit: 10.5.9
This package is auto-updated.
Last update: 2025-02-28 01:06:16 UTC
README
A Quiche-based QUIC implementation for PHP
Installation
composer require nethergamesmc/quiche
Requires FFI to be enabled & the quiche library to be installed.
Usage
Client
<?php $clientSocket = new QuicheClientSocket( new SocketAddress("127.0.0.1", 19132), function(QuicheConnection $connection, QuicheStream $stream) : void{ // gets called when a new stream is opened } ); $clientConfig = $clientSocket->getConfig(); $clientConfig->enableBidirectionalStreams(); $clientSocket->connect(); while(true){ $clientSocket->tick(); }
Server
<?php $serverSocket = new QuicheServerSocket( [new SocketAddress("127.0.0.1", 19132)], function(QuicheConnection $connection, ?QuicheStream $stream) : void{ // gets called when a new connection is established or a new stream is opened } ); $serverConfig = $serverSocket->getConfig(); $serverConfig->loadPrivKeyFromFile($pathToKey); $serverConfig->loadCertChainFromFile($pathToCert); $serverConfig->enableBidirectionalStreams(); while(true){ $serverSocket->tick(); }