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
或者,嘗試最新的主分支。
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