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

This version

0.7.1

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

Uploaded Source

Built Distributions

uvloop-0.7.1-cp36-cp36m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.6m

uvloop-0.7.1-cp36-cp36m-manylinux1_i686.whl (2.8 MB view details)

Uploaded CPython 3.6m

uvloop-0.7.1-cp36-cp36m-macosx_10_11_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m macOS 10.11+ x86-64

uvloop-0.7.1-cp35-cp35m-manylinux1_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.5m

uvloop-0.7.1-cp35-cp35m-manylinux1_i686.whl (2.7 MB view details)

Uploaded CPython 3.5m

uvloop-0.7.1-cp35-cp35m-macosx_10_11_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.5m macOS 10.11+ x86-64

File details

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

File metadata

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

File hashes

Hashes for uvloop-0.7.1.tar.gz
Algorithm Hash digest
SHA256 e606cc9de2036430e5c502a58e265a7788134096803349ff0c537ec65044ef12
MD5 c1d664e7210b7a7f3617240c98c33a2f
BLAKE2b-256 0314addd76b562029236adfbf150f38af1296549892f89acb4168f40c361c1e1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 2916cf697d9b1100a2629c3e0e114958ed7b35421b1d697573a8c40a2db29908
MD5 d2a597b30bc1f2f8dfa2cecb59cf5ace
BLAKE2b-256 c106e4ee3824cfac9e679aec489c412fd9e26e7c10568784bfa80a156278e4a9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 d41076b6cd65b5776152868e984f5f4f6362199fea713a579cf787c394a301ab
MD5 79582f1f01e89d613c007b031288902e
BLAKE2b-256 96887afd36a857f7eec91c511c76715b68dc1e2c5885e91d08fc5b982d14d211

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 82e9d879db79b94b0d00bd73f90e29c43b480d509718d129eb31e2a3dc9e103c
MD5 b7cc846361df67872c41b90d11db0651
BLAKE2b-256 8ab6f1d78e43cc3cd7426f93accbfd28bd2832da1327e91b307a7bf2b89c94ef

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 666377fbc5c41b5ec1c972648fad259a023dd81a141a132b4fb0e029b62caee5
MD5 b05c97d141323ad055b6a99253883393
BLAKE2b-256 f3cac7cbfa6d622683b75f2193ed79ca1fb75ac866b974ac308c9a5ae9423218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 2a5181f304d742b3a9d3f32f0aec4c109e88233cd9ad88dc2fb337010b750391
MD5 7d45e74f4274a821f7762005cacdcd15
BLAKE2b-256 6b7ccd635574b06418283fef1c3c4e969d359456d3d207f69a18e4aebed5ff0d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.1-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 0a37768784c6f88a56efd13352dce546e63913d99200bd7ef6fa46cb22747a01
MD5 70b19cad03273e12259dd91c396dbde3
BLAKE2b-256 c91c49d99d7d285a17d3c5a286a3619c28f217fdf03232b712dd39592bafbad0

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