LiteSpeed QUIC(LSQUIC) 라이브러리는 서버와 클라이언트를 위한 QUIC 및 HTTP/3 기능의 오픈 소스 구현입니다. 이 배포판의 코드 대부분은 LiteSpeed 웹 서버, 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