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://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())

Alternatively, you can create an instance of the loop manually, using:

loop = uvloop.new_event_loop()
asyncio.set_event_loop(loop)

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.6.7.tar.gz (1.7 MB view details)

Uploaded Source

Built Distributions

uvloop-0.6.7-cp35-cp35m-manylinux1_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.5m

uvloop-0.6.7-cp35-cp35m-manylinux1_i686.whl (2.5 MB view details)

Uploaded CPython 3.5m

uvloop-0.6.7-cp35-cp35m-macosx_10_12_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.5m macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for uvloop-0.6.7.tar.gz
Algorithm Hash digest
SHA256 843bc46f13bc75367e80bbc2c9a8bb3f2fa3ac6ee5bc4bf72fdf3c23dda00a38
MD5 0e221c3f05bdc68ba15788f0fa234bde
BLAKE2b-256 01ac164734940b4f170cd40d567aa92176893e7ff0be091ae1994feb6e1b939c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.6.7-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 3e42b51e750182bed45b0c081bf17b80590a687586d34e2d120c017b43e779c5
MD5 7b008e2b4c542e4979451fac66372b1a
BLAKE2b-256 48973ecb1434d8fba0ebd7002a3cd0da7e44dba800a7fc60422ec6e3f465a5d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.6.7-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 6366a7636e62f87d35712c5c71a9fd589386188cb2fc056c4686b0d06048c7b0
MD5 2f576c2c607cde6bbfef2cfe52b5060f
BLAKE2b-256 7dc7d88c1fbeab17d0499e899efc261d25b641ecd1f3fededc44b6c16d6ae492

See more details on using hashes here.

File details

Details for the file uvloop-0.6.7-cp35-cp35m-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for uvloop-0.6.7-cp35-cp35m-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8c7f84b835f6c219dc9f2ca23fc591a70397deb86794d787e5e23f556506c9c0
MD5 a679b29e4b1fc1046e2539ec3f600bc0
BLAKE2b-256 6725ef06bc58eb16005794006d523e5c218d0f6a5b81dcbc88acd06285277fe9

See more details on using hashes here.

Supported by

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