Die LiteSpeed QUIC (LSQUIC)-Bibliothek ist eine Open-Source-Implementierung der QUIC- und HTTP/3-Funktionalität für Server und Clients. Der Großteil des Codes in dieser Distribution wird in unseren eigenen Produkten verwendet: LiteSpeed Web Server, LiteSpeed ADC und OpenLiteSpeed.
Derzeit unterstützte QUIC-Versionen sind v1, v2, Internet-Draft-Versionen 29 und 27; und die älteren „Google“ QUIC-Versionen Q043, Q046, ein Q050.
LiteSpeed QUIC ist größtenteils mit den folgenden RFCs kompatibel:
Die folgenden QUIC-Protokollerweiterungen sind implementiert:
Die Dokumentation ist unter https://lsquic.readthedocs.io/en/latest/ verfügbar.
Sehen Sie sich außerdem Beispielprogramme für die API-Nutzung und EXAMPLES.txt für einige Kompilierungs- und Laufzeitoptionen an.
Um LSQUIC zu erstellen, benötigen Sie CMake, zlib und BoringSSL. Das Beispielprogramm verwendet libevent, um die Ereignisschleife bereitzustellen.
BoringSSL ist nicht verpackt; du musst es selbst bauen. Der Prozess ist unkompliziert. Sie müssen go
installieren.
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
Möglicherweise müssen Sie Voraussetzungen wie zlib und libevent installieren.
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
Oder probieren Sie einfach den neuesten Master-Zweig aus.
cmake . && make
Denken Sie daran, wo sich BoringSSL-Quellen befinden:
BORINGSSL=$PWD
Wenn Sie Optimierungen aktivieren möchten, tun Sie dies
cmake -DCMAKE_BUILD_TYPE=Release . && make
Wenn Sie als Bibliothek erstellen möchten (notwendig, um lsquic selbst als gemeinsam genutzte Bibliothek zu erstellen), gehen Sie wie folgt vor:
cmake -DBUILD_SHARED_LIBS=1 . && make
http_client
, http_server
und die Tests von LSQUIC verknüpfen BoringSSL-Bibliotheken statisch. Gemäß dem vorherigen Abschnitt können Sie LSQUIC wie folgt erstellen:
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
Statisch:
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
Als dynamische Bibliothek:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
Die Bibliothek sowie der Beispiel-Client und -Server können mit Docker erstellt werden.
Git-Submodule initialisieren:
cd lsquic
git submodule update --init
Erstellen Sie das Docker-Image:
docker build -t lsquic .
Dann können Sie die Beispiele aus der Befehlszeile verwenden. Zum Beispiel:
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
Die Bibliothek wurde auf den folgenden Plattformen getestet:
Zögern Sie nicht, uns Fehler zu melden. Noch besser: Schicken Sie uns Korrekturen und Verbesserungen!
Viel Spaß,
LiteSpeed QUIC-Team.
Copyright (c) 2017 – 2021 LiteSpeed Technologies Inc