QUIC 和 HTTP/3 的实现
项目描述
什么是 aioquic?
aioquic 是一个用于 Python 的 QUIC 网络协议库。它具有最小的 TLS 1.3 实现、QUIC 栈和 HTTP/3 栈。
aioquic 被用于像 dnspython、hypercorn、mitmproxy 和 Web Platform Tests 跨浏览器测试套件等 Python 开源项目中。它也在关于 QUIC 的研究论文中得到广泛使用。
要了解更多关于 aioquic 的信息,请 阅读文档。
为什么我应该使用 aioquic?
aioquic 被设计成嵌入到希望支持 QUIC 和/或 HTTP/3 的 Python 客户端和服务器库中。目标是提供一个共同的基础代码库,以避免重复劳动。
QUIC和HTTP/3 API都遵循“自己带来I/O”的模式,将实际的I/O操作留给API用户。这种方法具有许多优点,包括使代码可测试,并允许与不同的并发模型集成。
为了确保最佳代码质量,已经投入大量精力编写了一个广泛的aioquic代码测试套件,并且它定期与其他QUIC实现进行互操作性测试。
特性
安装
安装aioquic最简单的方法是运行
pip install aioquic
从源码构建
如果没有为你系统提供的轮子,或者如果你希望从源码构建aioquic,你将需要OpenSSL开发头文件。
Linux
在Debian/Ubuntu上运行
sudo apt install libssl-dev python3-dev
在Alpine Linux上运行
sudo apk add openssl-dev python3-dev bsd-compat-headers libffi-dev
OS X
在OS X上运行
brew install openssl
您需要设置一些环境变量以链接到OpenSSL
export CFLAGS=-I$(brew --prefix openssl)/include
export LDFLAGS=-L$(brew --prefix openssl)/lib
Windows
在Windows上,安装OpenSSL最简单的方法是使用Chocolatey。
choco install openssl
您需要设置一些环境变量以链接到OpenSSL
$Env:INCLUDE = "C:\Progra~1\OpenSSL\include"
$Env:LIB = "C:\Progra~1\OpenSSL\lib"
运行示例
aioquic附带了一些示例,展示了各种QUIC用例。
您可以在以下位置浏览这些示例:https://github.com/aiortc/aioquic/tree/main/examples
许可证
项目详情
下载文件
下载适合您平台的文件。如果您不确定该选择哪个,请了解更多关于安装包的信息。
源分布
构建的发行版
aioquic-1.2.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f91263bb3f71948c5c8915b4d50ee370004f20a416f67fab3dcc90556c7e7199 |
|
MD5 | bd18d37358cfe6c703e7988b5bd77d9a |
|
BLAKE2b-256 | 4b1abf10b2c57c06c7452b685368cb1ac90565a6e686e84ec6f84465fb8f78f4 |
aioquic-1.2.0-pp310-pypy310_pp73-win_amd64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cbe7167b2faee887e115d83d25332c4b8fa4604d5175807d978cb4fe39b4e36e |
|
MD5 | e94b01afec14c5294cea67c9abde8ca7 |
|
BLAKE2b-256 | fc40e946f3e28a803f2e553e710b0902dd8f2b6992801b1eec8d7c383f597715 |
aioquic-1.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3976b75e82d83742c8b811e38d273eda2ca7f81394b6a85da33a02849c5f1d9d |
|
MD5 | 23d385ebd054a4441249c7b4ed409441 |
|
BLAKE2b-256 | d3de7bb51c7bcf8aceaba6b72656031708faf2eed8c5f237143a4a381f4dc1c8 |
aioquic-1.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c22689c33fe4799624aed6faaba0af9e6ea7d31ac45047745828ee68d67fe1d9 |
|
MD5 | 7cd74f4a6d013b4b74ff4029ebf6987b |
|
BLAKE2b-256 | 2963f17ce51381cdf75390d1d01f13cd7c4836c4dd8b75c0d4f7837cfabcafca |
aioquic-1.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6fe683943ea3439dd0aca05ff80e85a552d4b39f9f34858c76ac54c205990e88 |
|
MD5 | b5529e97b85a20d4e5c4545ea7ac763a |
|
BLAKE2b-256 | 9881e3c2e0f2a7e2380250490ed526851ebdfa0af825512fb30c2f2fe7bd6f04 |
aioquic-1.2.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 358e2b9c1e0c24b9933094c3c2cf990faf44d03b64d6f8ff79b4b3f510c6c268 |
|
MD5 | 40f2cb200a444d3747848f076eb0e229 |
|
BLAKE2b-256 | 2dbdf1910e0d80b6acc3cc95a2daeaeb48fd07a1c83194b2c7791e9eaa1500a2 |
aioquic-1.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 8e600da7aa7e4a7bc53ee8f45fd66808032127ae00938c119ac77d66633b8961 |
|
MD5 | 7a14dc0aa1b6e22615b45460037e9327 |
|
BLAKE2b-256 | 00ba023fb3f1476bc34b48e484a4ea866bfdef6454ff17d76ce5da7b02c4c6b7 |
哈希值 for aioquic-1.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fcc1eb083ed9f8d903482e375281c8c26a5ed2b6bee5ee2be3f13275d8fdb146 |
|
MD5 | 48687ae27ec5628ee3d97581d54c9498 |
|
BLAKE2b-256 | 53501c7c6752e7492aa714b50b48430a625f13b0542a72e352be71719fc3000d |
哈希值 for aioquic-1.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | c332cffa3c2124e5db82b2b9eb2662bd7c39ee2247606b74de689f6d3091b61a |
|
MD5 | 5fac0e5d93d051ef1d4ff0433b16f3bf |
|
BLAKE2b-256 | dc2393f1363dba7f351fed9a7e1ed807685af14bd1d81c1ce637fc6bea10dd81 |
哈希值 for aioquic-1.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6371c3afa1036294e1505fdbda8c147bc41c5b6709a47459e8c1b4eec41a86ef |
|
MD5 | a9412df2573abdefa45282dd0da0a60f |
|
BLAKE2b-256 | 6a6659aed7ebf8701472cb89068ad9b873b8a24043994fe3ee127ea87e03a158 |
哈希值 for aioquic-1.2.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 81650d59bef05c514af2cfdcb2946e9d13367b745e68b36881d43630ef563d38 |
|
MD5 | 99557815c255eb3c4cd8394944b3acff |
|
BLAKE2b-256 | aba50765c16e90d1b9847c03ff1740ebdc50b9a120a41ba7bf63871e1bfe7bcc |
哈希值 for aioquic-1.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6e418c92898a0af306e6f1b6a55a0d3d2597001c57a7b1ba36cf5b47bf41233b |
|
MD5 | fb3a3e94fbdf76e39b9ba4cda4e876ed |
|
BLAKE2b-256 | 24fc626d26b967446cdadb29e6f74e00b650a78ea6a2fb11bc6976215d3232e7 |
哈希值 for aioquic-1.2.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7dcc212bb529900757d8e99a76198b42c2a978ce735a1bfca394033c16cfc33c |
|
MD5 | a03666489dba30e56b8142e1274d3f58 |
|
BLAKE2b-256 | 8c34d3c5327552617525baa4ab7a25512830aac3c99babe3905570b03309f231 |
哈希值 for aioquic-1.2.0-pp38-pypy38_pp73-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1de513772fd04ff38028fdf748a9e2dec33d7aa2fbf67fda3011d9a85b620c54 |
|
MD5 | 360a12c9a28d80e3267a75a5f5ec15d2 |
|
BLAKE2b-256 | abde8269cb6ab1789203ffcaa98653d7c0767adc0a9eba0f1ab0211db21aff0e |
哈希值 for aioquic-1.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | bb917143e7a4de5beba1e695fa89f2b05ef080b450dea07338cc67a9c75e0a4d |
|
MD5 | ccb11ece278a31f486c445e75a5114d5 |
|
BLAKE2b-256 | 22f1691dc8d85aeeca249ac9d661bb69c262f97ea17eb1a7dfb6a2e9456f61b0 |
哈希值 for aioquic-1.2.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e2c3c127cc3d9eac7a6d05142036bf4b2c593d750a115a2fa42c1f86cbe8c0a0 |
|
MD5 | 15ad5eac25e45913f63cd993d3295964 |
|
BLAKE2b-256 | d54e0bb2929413024855281b076056f0aba23fd577c4915ffebee92413917a95 |
哈希值 for aioquic-1.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f81e7946f09501a7c27e3f71b84a455e6bf92346fb5a28ef2d73c9d564463c63 |
|
MD5 | 4ca5b9b5f1fba97471181bddb98a9379 |
|
BLAKE2b-256 | e47dffd7c68b32076880cff123ffec11ad2bd30880f0a7170e9d3891e6cd0d87 |
散列值 用于 aioquic-1.2.0-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 43ae3b11d43400a620ca0b4b4885d12b76a599c2cbddba755f74bebfa65fe587 |
|
MD5 | b9ae30807ebb90da61fd27c7396ee9b7 |
|
BLAKE2b-256 | b00f4a280923313b831892caaa45348abea89e7dd2e4422a86699bb0e506b1dd |
散列值 用于 aioquic-1.2.0-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | cd75015462ca5070a888110dc201f35a9f4c7459f9201b77adc3c06013611bb8 |
|
MD5 | 90f6d3ae2ac1b6ea35f17785d2bc6332 |
|
BLAKE2b-256 | 0f93fa4c981a8a8a903648d4cd6e12c0fca7f44e3ef4ba15a8b99a26af05b868 |
散列值 用于 aioquic-1.2.0-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2466499759b31ea4f1d17f4aeb1f8d4297169e05e3c1216d618c9757f4dd740d |
|
MD5 | b4e6553f951a5937e11fdacd29de0f74 |
|
BLAKE2b-256 | 154856a8c9083d1deea4ccaf1cbf5a91a396b838b4a0f8650f4e9f45c7879a38 |
散列值 用于 aioquic-1.2.0-cp38-abi3-macosx_11_0_arm64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 84d733332927b76218a3b246216104116f766f5a9b2308ec306cd017b3049660 |
|
MD5 | b392f91c8fca7edea22996d5fd646364 |
|
BLAKE2b-256 | 6a1f4d1c40714db65be828e1a1e2cce7f8f4b252be67d89f2942f86a1951826c |
散列值 用于 aioquic-1.2.0-cp38-abi3-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e23964dfb04526ade6e66f5b7cd0c830421b8138303ab60ba6e204015e7cb0b |
|
MD5 | 95cca36540ea2d56ce7dd19181f61abc |
|
BLAKE2b-256 | 19031c385739e504c70ab2a66a4bc0e7cd95cee084b374dcd4dc97896378400b |