Skip to main content

Fast implementation of asyncio event loop on top of libuv

Project description

https://travis-ci.org/MagicStack/uvloop.svg?branch=master https://ci.appveyor.com/api/projects/status/4apd79e5jqrwwe40/branch/master?svg=true https://img.shields.io/pypi/v/uvloop.svg

uvloop is a fast, drop-in replacement of the built-in asyncio event loop. uvloop is implemented in Cython and uses libuv under the hood.

The project documentation can be found here. Please also check out the wiki.

Performance

uvloop makes asyncio 2-4x faster.

performance.png

The above chart shows the performance of an echo server with different message sizes. The sockets benchmark uses loop.sock_recv() and loop.sock_sendall() methods; the streams benchmark uses asyncio high-level streams, created by the asyncio.start_server() function; and the protocol benchmark uses loop.create_server() with a simple echo protocol. Read more about uvloop performance.

Installation

uvloop requires Python 3.5 and is available on PyPI. Use pip to install it:

$ pip install uvloop

Using uvloop

To make asyncio use uvloop, you can install the uvloop event loop policy:

import asyncio
import uvloop
asyncio.set_event_loop_policy(uvloop.EventLoopPolicy())

Development of uvloop

To build uvloop, you’ll need Cython and Python 3.5. The best way is to create a virtual env, so that you’ll have cython and python commands pointing to the correct tools.

  1. git clone --recursive git@github.com:MagicStack/uvloop.git

  2. cd uvloop

  3. make

  4. make test

License

uvloop is dual-licensed under MIT and Apache 2.0 licenses.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uvloop-0.10.0.tar.gz (1.9 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

uvloop-0.10.0-cp36-cp36m-manylinux1_x86_64.whl (3.6 MB view details)

Uploaded CPython 3.6m

uvloop-0.10.0-cp36-cp36m-manylinux1_i686.whl (3.4 MB view details)

Uploaded CPython 3.6m

uvloop-0.10.0-cp36-cp36m-macosx_10_11_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.6mmacOS 10.11+ x86-64

uvloop-0.10.0-cp35-cp35m-manylinux1_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.5m

uvloop-0.10.0-cp35-cp35m-manylinux1_i686.whl (3.3 MB view details)

Uploaded CPython 3.5m

uvloop-0.10.0-cp35-cp35m-macosx_10_11_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.5mmacOS 10.11+ x86-64

File details

Details for the file uvloop-0.10.0.tar.gz.

File metadata

  • Download URL: uvloop-0.10.0.tar.gz
  • Upload date:
  • Size: 1.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for uvloop-0.10.0.tar.gz
Algorithm Hash digest
SHA256 f9cd68448e45f5a609d2d679deb3d434be9ab68a4cc32e24c5eb9309e3e3f9db
MD5 858d75b747405d3c4148ccfe4027721c
BLAKE2b-256 eb1e0012c2e56a49df0c7c604e1eb5dce05b4e86de705bd5c49745c1d6a50dc5

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2d703d0ae85c6d9ee490096046a7c94ccac70b89e03b87c64979ed197305d4ca
MD5 b9ab722f30ed5ecf531f934deaa11921
BLAKE2b-256 d14ca252aab064e4da4acaa3cc26ac00ca66b9af07dc56275956f4f2989e2d80

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp36-cp36m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 98e91177a7ed43517256dae2158964ffe3d08a577d647e73619fc5b3fff73f66
MD5 6d8f532b80eb2da401db5d88000efb87
BLAKE2b-256 d9f5865d99380cb42442ed6d948b6b8fdd64742b1eb7d0b183be515bc647f7e6

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp36-cp36m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 797a87ce4b97b62a363cf3a5a69510145dcf170754a8617c37bb6378e30c81c6
MD5 c2d52c228c86d4c123c41c994157f234
BLAKE2b-256 9c9c307e1564ac4a1ccb066770fcbf54c940233eb08331906d9a827f9e970f0a

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b856e0cf09e5b11220a9eb1eef9b975640a6920283f44396cd1042e1a09c7eb1
MD5 c2468040373fda96162aaa069b541e97
BLAKE2b-256 eae784305c3ecc3bd21de9f40585a208b74bc63c5ee43435e753b84875c1d8d3

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp35-cp35m-manylinux1_i686.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 7a57029b43f5118362c2614c15e7a5cf11ca89fb9751740c0dcd4d8803196b75
MD5 c9aaa9f00e25032e7317b45dd557c46a
BLAKE2b-256 56069d203789c88f95166bda123ded1e092f4d183acde01ae98d73da7659f0f7

See more details on using hashes here.

File details

Details for the file uvloop-0.10.0-cp35-cp35m-macosx_10_11_x86_64.whl.

File metadata

File hashes

Hashes for uvloop-0.10.0-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 ca19826741af73f85e55e2029b436a75813b019e97ecd0d49ef392fb820fd783
MD5 76e46d4582f31113a86cf563be391dfb
BLAKE2b-256 486d18b91a1ddb34b16589f684fcea8c32939f04d21baa1e932eaf811412413f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page