LiteSpeed QUIC (LSQUIC) ライブラリは、サーバーおよびクライアント用の QUIC および HTTP/3 機能のオープンソース実装です。このディストリビューション内のコードのほとんどは、LiteSpeed Web Server、LiteSpeed ADC、および OpenLiteSpeed という当社独自の製品で使用されています。
現在サポートされている QUIC バージョンは v1、v2、Internet-Draft バージョン 29、および 27 です。古い「Google」QUIC バージョン Q043、Q046、Q050。
LiteSpeed QUIC は、次の RFC にほぼ準拠しています。
次の QUIC プロトコル拡張が実装されています。
ドキュメントは https://lsquic.readthedocs.io/en/latest/ で入手できます。
さらに、API の使用法についてはサンプル プログラムを、一部のコンパイルおよび実行時オプションについては EXAMPLES.txt を参照してください。
LSQUIC をビルドするには、CMake、zlib、および BoringSSL が必要です。サンプル プログラムでは、libevent を使用してイベント ループを提供します。
BoringSSL はパッケージ化されていません。自分で構築する必要があります。プロセスは簡単です。インストールgo
必要があります。
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
zlib や libevent などの前提条件のインストールが必要な場合があります。
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
または、最新の master ブランチを試してください。
cmake . && make
BoringSSL ソースがどこにあるかを覚えておいてください。
BORINGSSL=$PWD
最適化を有効にしたい場合は、次のようにします。
cmake -DCMAKE_BUILD_TYPE=Release . && make
ライブラリとしてビルドしたい場合は、(lsquic 自体を共有ライブラリとしてビルドする必要があります)、次のようにします。
cmake -DBUILD_SHARED_LIBS=1 . && make
LSQUIC のhttp_client
、 http_server
、およびテストは、BoringSSL ライブラリを静的にリンクします。前のセクションに続いて、次のように LSQUIC を構築できます。
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
静的に:
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
動的ライブラリとして:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
ライブラリとサンプルのクライアントとサーバーは Docker を使用して構築できます。
Git サブモジュールを初期化します。
cd lsquic
git submodule update --init
Docker イメージをビルドします。
docker build -t lsquic .
その後、コマンド ラインから例を使用できます。例えば:
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
ライブラリは次のプラットフォームでテストされています。
バグを遠慮なく報告してください。さらに良いことに、修正と改善を私たちに送ってください。
楽しむ、
LiteSpeed QUIC チーム。
著作権 (c) 2017 - 2021 LiteSpeed Technologies Inc