La biblioteca LiteSpeed QUIC (LSQUIC) es una implementación de código abierto de la funcionalidad QUIC y HTTP/3 para servidores y clientes. La mayor parte del código de esta distribución se utiliza en nuestros propios productos: LiteSpeed Web Server, LiteSpeed ADC y OpenLiteSpeed.
Las versiones de QUIC actualmente admitidas son v1, v2, Internet-Draft versiones 29 y 27; y las versiones anteriores de QUIC de "Google" Q043, Q046 y Q050.
LiteSpeed QUIC cumple principalmente con los siguientes RFC:
Se implementan las siguientes extensiones del protocolo QUIC:
La documentación está disponible en https://lsquic.readthedocs.io/en/latest/.
Además, consulte programas de ejemplo para el uso de API y EXAMPLES.txt para conocer algunas opciones de compilación y tiempo de ejecución.
Para compilar LSQUIC, necesita CMake, zlib y BoringSSL. El programa de ejemplo utiliza libevent para proporcionar el bucle de eventos.
BoringSSL no está empaquetado; tienes que construirlo tú mismo. El proceso es sencillo. Necesitará go
instalado.
git clone https://boringssl.googlesource.com/boringssl
cd boringssl
Es posible que necesite instalar requisitos previos como zlib y libevent.
git checkout 9fc1c33e9c21439ce5f87855a6591a9324e569fd
O simplemente pruebe la última rama master.
cmake . && make
Recuerde dónde están las fuentes de BoringSSL:
BORINGSSL=$PWD
Si desea activar las optimizaciones, haga
cmake -DCMAKE_BUILD_TYPE=Release . && make
Si desea compilar como una biblioteca (es necesario compilar lsquic como una biblioteca compartida), haga lo siguiente:
cmake -DBUILD_SHARED_LIBS=1 . && make
http_client
, http_server
y las pruebas de LSQUIC vinculan estáticamente las bibliotecas BoringSSL. Siguiendo la sección anterior, puede construir LSQUIC de la siguiente manera:
git clone https://github.com/litespeedtech/lsquic.git
cd lsquic
git submodule update --init
Inactivamente:
# $BORINGSSL is the top-level BoringSSL directory from the previous step
cmake -DBORINGSSL_DIR=$BORINGSSL .
make
Como biblioteca dinámica:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL .
make
make test
La biblioteca y el cliente y servidor de ejemplo se pueden crear con Docker.
Inicialice los submódulos de Git:
cd lsquic
git submodule update --init
Construya la imagen de Docker:
docker build -t lsquic .
Luego puedes usar los ejemplos de la línea de comando. Por ejemplo:
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 biblioteca ha sido probada en las siguientes plataformas:
No dude en informarnos de los errores. Aún mejor, ¡envíenos correcciones y mejoras!
Divertirse,
Equipo LiteSpeed QUIC.
Copyright (c) 2017 - 2021 LiteSpeed Technologies Inc.