基于libuv的asyncio事件循环的快速实现
项目描述
uvloop 是一个快速、即插即用的 asyncio 事件循环的替代品。uvloop 使用 Cython 实现,并使用 libuv 作为底层。
性能
uvloop 使 asyncio 变得 2-4 倍更快。
上图显示了不同消息大小的 echo 服务器的性能。其中,sockets 基准测试使用 loop.sock_recv() 和 loop.sock_sendall() 方法;streams 基准测试使用 asyncio 高级流,由 asyncio.start_server() 函数创建;而 protocol 基准测试使用 loop.create_server() 与简单的 echo 协议。有关 uvloop 的更多信息,请参阅关于它的 博客文章。
安装
uvloop 需要 Python 3.8 或更高版本,并在 PyPI 上可用。使用 pip 安装它
$ pip install uvloop
请注意,强烈建议在安装 uvloop 之前先 升级 pip
$ pip install -U pip
使用 uvloop
截至 uvloop 0.18,使用它的首选方式是通过 uvloop.run() 辅助函数
import uvloop
async def main():
# Main entry-point.
...
uvloop.run(main())
uvloop.run() 通过简单地将 asyncio.run() 配置为使用 uvloop,并传递所有参数,例如 debug,来实现,例如 uvloop.run(main(), debug=True)。
对于 Python 3.11 及更早版本,可以使用以下替代代码片段
import asyncio
import sys
import uvloop
async def main():
# Main entry-point.
...
if sys.version_info >= (3, 11):
with asyncio.Runner(loop_factory=uvloop.new_event_loop) as runner:
runner.run(main())
else:
uvloop.install()
asyncio.run(main())
从源代码构建
要构建 uvloop,您需要 Python 3.8 或更高版本
克隆仓库
$ git clone --recursive git@github.com:MagicStack/uvloop.git $ cd uvloop
创建一个虚拟环境并激活它
$ python3 -m venv uvloop-dev $ source uvloop-dev/bin/activate
安装开发依赖项
$ pip install -e .[dev]
构建和运行测试
$ make $ make test
许可协议
uvloop 在 MIT 和 Apache 2.0 许可证下双许可。
项目详情
关闭
uvloop-0.20.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4603ca714a754fc8d9b197e325db25b2ea045385e8a3ad05d3463de725fdf469 |
|
MD5 | c3395ddc1746e2bf4b2987d88c4707e8 |
|
BLAKE2b-256 | bcf1dc9577455e011ad43d9379e836ee73f40b4f99c02946849a44f7ae64835e |
关闭
uvloop-0.20.0-cp312-cp312-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | aea15c78e0d9ad6555ed201344ae36db5c63d428818b4b2a42842b3870127c00 |
|
MD5 | e7fb6e4f88766d8967830a8c4f34a006 |
|
BLAKE2b-256 | 6f52deb4be09060637ef4752adaa0b75bf770c20c823e8108705792f99cd4a6f |
关闭
uvloop-0.20.0-cp312-cp312-musllinux_1_1_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3a609780e942d43a275a617c0839d85f95c334bad29c4c0918252085113285b5 |
|
MD5 | 779aff33ad6085381b18a24ab75f4208 |
|
BLAKE2b-256 | 18b2117ab6bfb18274753fbc319607bf06e216bd7eea8be81d5bac22c912d6a7 |
关闭
uvloop-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 649c33034979273fa71aa25d0fe120ad1777c551d8c4cd2c0c9851d88fcb13ab |
|
MD5 | baf8f3d57203089a32918d2ffe781324 |
|
BLAKE2b-256 | 0af85ceea6876154d926604f10c1dd896adf9bce6d55a55911364337b8a5ed8d |
关闭
uvloop-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 6462c95f48e2d8d4c993a2950cd3d31ab061864d1c226bbf0ee2f1a8f36674b9 |
|
MD5 | fe9f1834a8f291624f9e4e7c6e5d5920 |
|
BLAKE2b-256 | c1bab64b10f577519d875992dc07e2365899a1a4c0d28327059ce1e1bdfb6854 |
关闭
uvloop-0.20.0-cp312-cp312-macosx_10_9_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 77fbc69c287596880ecec2d4c7a62346bef08b6209749bf6ce8c22bbaca0239e |
|
MD5 | 3f421058d913fd1a872a2d0676f61b93 |
|
BLAKE2b-256 | 1e6b9207e7177ff30f78299401f2e1163ea41130d4fd29bcdc6d12572c06b728 |
关闭
uvloop-0.20.0-cp312-cp312-macosx_10_9_universal2.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4b75f2950ddb6feed85336412b9a0c310a2edbcf4cf931aa5cfe29034829676d |
|
MD5 | b44901ee24615c5644f006bbb3b74532 |
|
BLAKE2b-256 | 2d6431cbd379d6e260ac8de3f672f904e924f09715c3f192b09f26cc8e9f574c |
关闭
uvloop-0.20.0-cp311-cp311-musllinux_1_1_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 4f44af67bf39af25db4c1ac27e82e9665717f9c26af2369c404be865c8818dcf |
|
MD5 | 1136e286c3a54a91436009bf91231e38 |
|
BLAKE2b-256 | b8947e256731260d313f5049717d1c4582d52a3b132424c95e16954a50ab95d3 |
关闭
uvloop-0.20.0-cp311-cp311-musllinux_1_1_aarch64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 80dc1b139516be2077b3e57ce1cb65bfed09149e1d175e0478e7a987863b68f0 |
|
MD5 | 72bbe707ae8bac8fa6c336181ac6eb64 |
|
BLAKE2b-256 | e44f49c51595bd794945c88613df88922c38076eae2d7653f4624aa6f4980b07 |
关闭
uvloop-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 82edbfd3df39fb3d108fc079ebc461330f7c2e33dbd002d146bf7c445ba6e756 |
|
MD5 | 059394eac2bce29673f958a2f90fd64d |
|
BLAKE2b-256 | 466d4caab3a36199ba52b98d519feccfcf48921d7a6649daf14a93c7e77497e9 |
关闭
哈希值 用于 uvloop-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 746242cd703dc2b37f9d8b9f173749c15e9a918ddb021575a0205ec29a38d31e |
|
MD5 | f8e9d9d7e11cae526a04ef14fb5a2306 |
|
BLAKE2b-256 | 83ceffa3c72954eae36825acfafd2b6a9221d79abd2670c0d25e04d6ef4a2007 |
关闭
哈希值 用于 uvloop-0.20.0-cp311-cp311-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e237f9c1e8a00e7d9ddaa288e535dc337a39bcbf679f290aee9d26df9e72bce9 |
|
MD5 | e1ce2e40d46ba87cf964069d44201e45 |
|
BLAKE2b-256 | 27c03c24e50bee7802a2add96ca9f0d5eb0ebab07e0a5615539d38aeb89499b9 |
关闭
哈希值 用于 uvloop-0.20.0-cp311-cp311-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e50289c101495e0d1bb0bfcb4a60adde56e32f4449a67216a1ab2750aa84f037 |
|
MD5 | bab4f24a38ff6a1950567171b62cf986 |
|
BLAKE2b-256 | 64bf45828beccf685b7ed9638d9b77ef382b470c6ca3b5bff78067e02ffd5663 |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 89e8d33bb88d7263f74dc57d69f0063e06b5a5ce50bb9a6b32f5fcbe655f9e73 |
|
MD5 | b82116b08e94f42ea2264e36f8eedf3d |
|
BLAKE2b-256 | 9d5a0ac516562ff783f760cab3b061f10fdeb4a9f985ad4b44e7e4564ff11691 |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 94707205efbe809dfa3a0d09c08bef1352f5d3d6612a506f10a319933757c006 |
|
MD5 | 8412b1e44cbf3e62e2c218e2a0ebb452 |
|
BLAKE2b-256 | 953b14cef46dcec6237d858666a4a1fdb171361528c70fcd930bfc312920e7a9 |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9b04d96188d365151d1af41fa2d23257b674e7ead68cfd61c725a422764062ae |
|
MD5 | 2f11853b953e1e3370a154428bfb10d6 |
|
BLAKE2b-256 | a9e00bec8a25b2e9cf14fdfcf0229637b437c923b4e5ca22f8e988363c49bb51 |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b16696f10e59d7580979b420eedf6650010a4a9c3bd8113f24a103dfdb770b10 |
|
MD5 | 35215be31c5b4bfd9470734032da1048 |
|
BLAKE2b-256 | 9ea59e973b25ade12c938940751bce71d0cb36efee3489014471f7d9c0a3c379 |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 35968fc697b0527a06e134999eef859b4034b37aebca537daeb598b9d45a137b |
|
MD5 | e6c58d4bcaf5ce4104533a522f6241ef |
|
BLAKE2b-256 | f7455a3f7a32372e4a90dfd83f30507183ec38990b8c5930ed7e36c6a15af47b |
关闭
哈希值 用于 uvloop-0.20.0-cp310-cp310-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9ebafa0b96c62881d5cafa02d9da2e44c23f9f0cd829f3a32a6aff771449c996 |
|
MD5 | e366ae258e25540e3187fdfb6a70d29c |
|
BLAKE2b-256 | f369cc1ad125ea8ce4a4d3ba7d9836062c3fc9063cf163ddf0f168e73f3268e3 |
关闭
哈希值 用于 uvloop-0.20.0-cp39-cp39-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e97152983442b499d7a71e44f29baa75b3b02e65d9c44ba53b10338e98dedb66 |
|
MD5 | 8c79b22d02344914e2217d37c074673f |
|
BLAKE2b-256 | b339c9a9413c87b6913cbe261e6078f7e86e3bc3c9f1f9f68f72e18cb2805c0f |
关闭
哈希值 用于 uvloop-0.20.0-cp39-cp39-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 36c530d8fa03bfa7085af54a48f2ca16ab74df3ec7108a46ba82fd8b411a2315 |
|
MD5 | bcea7422de87bbeb1b80487ab8d16ef6 |
|
BLAKE2b-256 | 838488bad98f47f54564498555d927c64a34366d5ca3b96af09235a38d4db783 |
关闭
哈希值 用于 uvloop-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 95720bae002ac357202e0d866128eb1ac82545bcf0b549b9abe91b5178d9b541 |
|
MD5 | a74a9a1a0cc9b3a2c63a03150b0b7904 |
|
BLAKE2b-256 | c9de16412389b48edc1ad93300be2ccbf86880341850663e7a462d0acbd3577b |
关闭
哈希值 用于 uvloop-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9d0fba61846f294bce41eb44d60d58136090ea2b5b99efd21cbdf4e21927c56a |
|
MD5 | b99ba20f152215d93b25dfb34c5a153b |
|
BLAKE2b-256 | 019280db889ab59dd2e0602264c825f08d7b53ca26df0adf7abf474d16ee8565 |
关闭
哈希值 for uvloop-0.20.0-cp39-cp39-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | a0fac7be202596c7126146660725157d4813aa29a4cc990fe51346f75ff8fde7 |
|
MD5 | 4fb5ab5b02ac71b7ce7bd7c0f5247ce4 |
|
BLAKE2b-256 | 9ea69061ac2f0a576d116b973f31f1a7ef18271df5feecb6841be767e09c1442 |
关闭
哈希值 for uvloop-0.20.0-cp39-cp39-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d8c36fdf3e02cec92aed2d44f63565ad1522a499c654f07935c8f9d04db69e95 |
|
MD5 | 47637d4c638419d9db7b324f3561360f |
|
BLAKE2b-256 | 7b71a0ada4783ad4950512214fc2bd8bbd0977e33aff9c37b2e1e2f2de4bb830 |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-musllinux_1_1_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2beee18efd33fa6fdb0976e18475a4042cd31c7433c866e8a09ab604c7c22ff2 |
|
MD5 | 3ac306b3839143e3ae92ec0cedc88db7 |
|
BLAKE2b-256 | d2d7414d12e5f4bdd1bcaa056fb8bd377a4693c62f7b7b1045c219473834fb1e |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-musllinux_1_1_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e7d61fe8e8d9335fac1bf8d5d82820b4808dd7a43020c149b63a1ada953d48a6 |
|
MD5 | 3bd02148a5cd5572f2d83d53de519276 |
|
BLAKE2b-256 | ac3d19651a38cc6662342c33d124373d32d576d9fa673156062eda7fefc226dc |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | b10c2956efcecb981bf9cfb8184d27d5d64b9033f917115a960b83f11bfa0d6b |
|
MD5 | 5b5f44da3a1bd87dc1a405206c92bfb3 |
|
BLAKE2b-256 | da6f1a7c814fd36320a7ca9cb362fae24178098f7c7cb1f972b1079889571ae6 |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 265a99a2ff41a0fd56c19c3838b29bf54d1d177964c300dad388b27e84fd7847 |
|
MD5 | ad95b1dfd8ba6ef5e882e7cabe126f17 |
|
BLAKE2b-256 | e9e944586b2a9a9dc9e44bead5a2428b8f6ccd0a434f6371e2933e5964e107d0 |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-macosx_10_9_x86_64.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fee6044b64c965c425b65a4e17719953b96e065c5b7e09b599ff332bb2744bdf |
|
MD5 | 26c88c0952e1659ea54010e46776d5ff |
|
BLAKE2b-256 | 10ba28491355f7a276ae0600768388ef59e66b06a4508cf5f82a420d89190e48 |
关闭
哈希值 for uvloop-0.20.0-cp38-cp38-macosx_10_9_universal2.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | f0e94b221295b5e69de57a1bd4aeb0b3a29f61be6e1b478bb8a69a73377db7ba |
|
MD5 | 7a2c44db9301389146bedb3c46f7f4ef |
|
BLAKE2b-256 | 9b6c120ab71f684bfcd68e1ce550d27064a52f48bec14cee0670f18b368e03e0 |