XQUIC

简介

阿里巴巴发布的XQUIC库

  • 是一个遵循IETF标准的QUIC和HTTP/3的客户端和服务端实现。 目前支持的QUIC版本是v1和draft-29。

  • 是跨平台的。 目前支持Android、iOS、Linux和macOS。绝大部分代码被用于我们自己的产品,并已在安卓、iOS APP以及服务端上进行了大规模测试。

  • 目前仍在积极开发中。 我们定期与其他QUIC实现进行互通性测试

依赖

编译XQUIC,你需要:

  • CMake
  • BoringSSL 或者 BabaSSL

运行测试用例,你需要:

  • libevent
  • CUnit

快速入门指南

XQUIC 支持 BoringSSL 和 BabaSSL。

使用 BabaSSL 编译

# 获取 xquic 源码
git clone git@github.com:alibaba/xquic.git
cd xquic

# 编译 BabaSSL
git clone git@github.com:BabaSSL/BabaSSL.git ./third_party/babassl
cd ./third_party/babassl/
./config --prefix=/usr/local/babassl
make -j
SSL_TYPE_STR="babassl"
SSL_PATH_STR="${PWD}"
SSL_INC_PATH_STR="${PWD}/include"
SSL_LIB_PATH_STR="${PWD}/libssl.a;${PWD}/libcrypto.a"
cd -

# 使用 BabaSSL 编译 xquic
git submodule update --init --recursive
mkdir -p build; cd build
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_DISABLE_RENO=0 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DSSL_INC_PATH=${SSL_INC_PATH_STR} -DSSL_LIB_PATH=${SSL_LIB_PATH_STR} ..
make -j

使用 BoringSSL 编译

# 获取 xquic 源码
git clone git@github.com:alibaba/xquic.git
cd xquic

# 编译 BoringSSL
git clone git@github.com:google/boringssl.git ./third_party/boringssl
cd ./third_party/boringssl
mkdir -p build && cd build
cmake -DBUILD_SHARED_LIBS=0 -DCMAKE_C_FLAGS="-fPIC" -DCMAKE_CXX_FLAGS="-fPIC" ..
make ssl crypto
cd ..
SSL_TYPE_STR="boringssl"
SSL_PATH_STR="${PWD}"
SSL_INC_PATH_STR="${PWD}/include"
SSL_LIB_PATH_STR="${PWD}/build/ssl/libssl.a;${PWD}/build/crypto/libcrypto.a"
cd ../..

# 使用 BoringSSL 编译 xquic
git submodule update --init --recursive
mkdir -p build; cd build
cmake -DGCOV=on -DCMAKE_BUILD_TYPE=Debug -DXQC_ENABLE_TESTING=1 -DXQC_SUPPORT_SENDMMSG_BUILD=1 -DXQC_ENABLE_EVENT_LOG=1 -DXQC_ENABLE_BBR2=1 -DXQC_DISABLE_RENO=0 -DSSL_TYPE=${SSL_TYPE_STR} -DSSL_PATH=${SSL_PATH_STR} -DSSL_INC_PATH=${SSL_INC_PATH_STR} -DSSL_LIB_PATH=${SSL_LIB_PATH_STR} ..
make -j

运行测试用例

sh ../scripts/xquic_test.sh

文档

Contributing

我们希望你能为XQUIC做出贡献,帮助它变得比现在更好!我们鼓励并重视所有类型的贡献,请参阅我们的贡献指南了解更多信息。

如果你有任何问题,请随时在我们的讨论区开启一个新的讨论主题。

License

XQUIC 使用 Apache 2.0 许可证。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


订阅 substack 体验古早写作:


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::