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.9.0.tar.gz (1.8 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.9.0-cp36-cp36m-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.6m

uvloop-0.9.0-cp36-cp36m-manylinux1_i686.whl (2.9 MB view details)

Uploaded CPython 3.6m

uvloop-0.9.0-cp36-cp36m-macosx_10_11_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.6mmacOS 10.11+ x86-64

uvloop-0.9.0-cp35-cp35m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.5m

uvloop-0.9.0-cp35-cp35m-manylinux1_i686.whl (2.8 MB view details)

Uploaded CPython 3.5m

uvloop-0.9.0-cp35-cp35m-macosx_10_11_x86_64.whl (1.3 MB view details)

Uploaded CPython 3.5mmacOS 10.11+ x86-64

File details

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

File metadata

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

File hashes

Hashes for uvloop-0.9.0.tar.gz
Algorithm Hash digest
SHA256 a15b96a2139ca6ceb779397c08a1089955e6f3308b030883aa4dcfda875f0a10
MD5 65353e06fd3db23a80b4dd6f4c202a8a
BLAKE2b-256 2fd2ace6713b6ec2aed8a6d6732dc29613b26ae8c0676b57713f92fda8045579

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 21870a1cd87b5efd7348e56643a2e627cc168926f6b540b5852cfe6e701e39af
MD5 e1603c2e1c7e3e42d48552efec5156fd
BLAKE2b-256 46650920a4d32219aa4538bd5a9695075d4b101cd11c1de33905444ded8401ee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 059c1d54ded42980abea18684cb67b7d3cb543b473b8f7b2343866afd66ccbb8
MD5 c9f6dc63a8fbbd65d6b2f87e5ef72a38
BLAKE2b-256 4cfae128ff00c7ac0f1883c21406fccf6cfe4c81ef779bbe70c91a8579a2f04e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 f04047f0df87674aec2119adae3e3491adcfb050ac2223d3c3e04e7180d002c8
MD5 4973027ae3f88fce4ddbc6124782ebcf
BLAKE2b-256 469449fe2b25bd3e033876724cdcd3a3681192ede101d64bb97ba0a30405b2b5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 4981fbd7e7d33e6560afd682e93a45a1b1bdcbf05e90e73ffca534a9a629accf
MD5 08e631093218453124eb3d61f61110ea
BLAKE2b-256 db256ada5104be1ef8e028ccf2f80d8809e27e726e06d9a18821053a73713b64

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 dc1a074445135f23f19536e8fe5f86621694c18578c125085bf79b1fc6d2b6b7
MD5 db7d431411e6441d068d6d1819674075
BLAKE2b-256 f749fb6d89069c7f7bb4274027810bd15db981b0b54b4535ce689b5a919eae01

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.0-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 c3a269c5bf8da509f05edcc2c51e123483b73f6f293b5b77082f46c2fcbedfa6
MD5 4c2356c534d9bbb784231919bc108dab
BLAKE2b-256 ad076c2f07b75e4240737e25efbc719cb65b0cb11864a387a7b058064cbb991c

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