Perpustakaan LiteSpeed QUIC (LSQUIC) adalah implementasi sumber terbuka dari fungsionalitas QUIC dan HTTP/3 untuk server dan klien. Sebagian besar kode dalam distribusi ini digunakan dalam produk kami sendiri: LiteSpeed Web Server, LiteSpeed ADC, dan OpenLiteSpeed.
Versi QUIC yang didukung saat ini adalah v1, v2, Internet-Draft versi 29, dan 27; dan versi QUIC "Google" yang lebih lama Q043, Q046, dan Q050.
LiteSpeed QUIC sebagian besar mematuhi RFC berikut:
Ekstensi protokol QUIC berikut diterapkan:
Dokumentasi tersedia di https://lsquic.readthedocs.io/en/latest/.
Selain itu, lihat contoh program untuk penggunaan API dan EXAMPLES.txt untuk beberapa opsi kompilasi dan run-time.
Untuk membangun LSQUIC, Anda memerlukan CMake, zlib, dan BoringSSL. Program contoh menggunakan libevent untuk menyediakan perulangan acara.
BoringSSL tidak dikemas; Anda harus membangunnya sendiri. Prosesnya sangat mudah. Anda perlu go
.
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
Anda mungkin perlu menginstal prasyarat seperti zlib dan libevent.
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
Atau, coba saja cabang master terbaru.
cmake . && make
Ingat di mana sumber BoringSSL berada:
BORINGSSL=$PWD
Jika Anda ingin mengaktifkan pengoptimalan, lakukan
cmake -DCMAKE_BUILD_TYPE=Release . && make
Jika Anda ingin membangun sebagai perpustakaan, (diperlukan untuk membangun lsquic sendiri sebagai perpustakaan bersama) lakukan:
cmake -DBUILD_SHARED_LIBS=1 . && make
http_client
, http_server
LSQUIC , dan pengujian menghubungkan perpustakaan BoringSSL secara statis. Mengikuti bagian sebelumnya, Anda dapat membangun LSQUIC sebagai berikut:
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
Secara statis:
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
Sebagai perpustakaan dinamis:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
Perpustakaan dan contoh klien dan server dapat dibangun dengan Docker.
Inisialisasi submodul Git:
cd lsquic
git submodule update --init
Bangun gambar Docker:
docker build -t lsquic .
Kemudian Anda dapat menggunakan contoh dari baris perintah. Misalnya:
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
Perpustakaan telah diuji pada platform berikut:
Jangan ragu untuk melaporkan bug kembali kepada kami. Lebih baik lagi, kirimkan perbaikan dan peningkatan kepada kami!
Selamat bersenang-senang,
Tim QUIC LiteSpeed.
Hak Cipta (c) 2017 - 2021 LiteSpeed Technologies Inc