La bibliothèque LiteSpeed QUIC (LSQUIC) est une implémentation open source des fonctionnalités QUIC et HTTP/3 pour les serveurs et les clients. La plupart du code de cette distribution est utilisé dans nos propres produits : LiteSpeed Web Server, LiteSpeed ADC et OpenLiteSpeed.
Les versions QUIC actuellement prises en charge sont v1, v2, Internet-Draft versions 29 et 27 ; et les anciennes versions de QUIC "Google" Q043, Q046 et Q050.
LiteSpeed QUIC est principalement conforme aux RFC suivantes :
Les extensions de protocole QUIC suivantes sont implémentées :
La documentation est disponible sur https://lsquic.readthedocs.io/en/latest/.
De plus, consultez des exemples de programmes pour l'utilisation de l'API et EXAMPLES.txt pour certaines options de compilation et d'exécution.
Pour créer LSQUIC, vous avez besoin de CMake, zlib et BoringSSL. L'exemple de programme utilise libevent pour fournir la boucle d'événements.
BoringSSL n'est pas packagé ; vous devez le construire vous-même. Le processus est simple. Vous devrez go
installé.
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
Vous devrez peut-être installer des prérequis comme zlib et libevent.
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
Ou essayez simplement la dernière branche principale.
cmake . && make
Rappelez-vous où se trouvent les sources BoringSSL :
BORINGSSL=$PWD
Si vous souhaitez activer les optimisations, faites
cmake -DCMAKE_BUILD_TYPE=Release . && make
Si vous souhaitez construire en tant que bibliothèque (nécessaire pour construire lsquic lui-même en tant que bibliothèque partagée), faites :
cmake -DBUILD_SHARED_LIBS=1 . && make
http_client
, http_server
et les tests de LSQUIC lient statiquement les bibliothèques BoringSSL. Suite à la section précédente, vous pouvez créer LSQUIC comme suit :
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
Statiquement :
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
En tant que bibliothèque dynamique :
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
La bibliothèque ainsi que les exemples de client et de serveur peuvent être construits avec Docker.
Initialisez les sous-modules Git :
cd lsquic
git submodule update --init
Créez l'image Docker :
docker build -t lsquic .
Ensuite, vous pouvez utiliser les exemples de la ligne de commande. Par exemple:
sudo docker run -it --rm lsquic http_client -s www.google.com -p / -o version=h3
sudo docker run -p 12345:12345/udp -v /path/to/certs:/mnt/certs -it --rm lsquic http_server -c www.example.com,/mnt/certs/chain,/mnt/certs/key
La bibliothèque a été testée sur les plateformes suivantes :
N'hésitez pas à nous signaler les bugs. Mieux encore, envoyez-nous des correctifs et des améliorations !
Amusez-vous,
Équipe LiteSpeed QUIC.
Copyright (c) 2017 - 2021 LiteSpeed Technologies Inc.