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.2

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

Uploaded Source

Built Distributions

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.6m

uvloop-0.7.2-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.2-cp35-cp35m-manylinux1_x86_64.whl (2.9 MB view details)

Uploaded CPython 3.5m

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

Uploaded CPython 3.5m

uvloop-0.7.2-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.2.tar.gz.

File metadata

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

File hashes

Hashes for uvloop-0.7.2.tar.gz
Algorithm Hash digest
SHA256 9bbf231e93b08c8411a0aa0b8fb510c565096b548afa4d1efff7e150990d3845
MD5 2ad81c0a1bfc58589f05686a9fc7eaf3
BLAKE2b-256 6d2fd9d64e467f4b0bee5ac2ba0ae14a728956e4069711af1777db88f3d909c1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 e6006c6794243c8f576927f55e2840b52b76fb2898d8366a91e255770dd21158
MD5 81871d4cdeb06bb0c09b7ae34a157023
BLAKE2b-256 2ac89ccc7be3fc03f5df555edf3c4f1a47d20ed042f3dd99d1659461dd9c9b6f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 cace8cfbc1b38527e72381da46d4f6eb5c328d5bba520880908250d0073c4d8e
MD5 d5b590c591c965089299ce6d439c30a9
BLAKE2b-256 c19366e7090cb120c00ef79609149c4cf9a232889830bef98ad7042596af2452

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 e0107630c402fead83688c0a78b79ad7b343440ae6a7ea8432071dfc1840acc7
MD5 95d2d288374dd5ba42a6702d31c393de
BLAKE2b-256 b04328d7cbccc5c1a4579d2b33acdf0986bb97be07afd11fb49b0085bd9e9f0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7be1037c4762562f67e0af9223e59afb23b6708d07a9c99b50ca5b26ea65cef0
MD5 dae655f8e70dc73c65df94102fb05cd1
BLAKE2b-256 27e6fde4f55364d074b2fe7a96642c7e05f98ffbfe93388e3656efb2eeb30cf1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 2e79731a74dbf838115fc0415186372a782a7e78d738d7c8e4dc058f724819bc
MD5 74327b8be6deee4de0bcc41929ceb45d
BLAKE2b-256 02fc4f05f49bc5c5c5e33915e0ec8f1f5b724c87a3fd37e5609f87250fe1cfe9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.7.2-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 d73bb09ca39a5072c8b7663fc081e7bec686b8bc03c2e1b30f2c39d8312afd7c
MD5 84be05d7996f1bc2594565596993e68f
BLAKE2b-256 321b294569691aa6712413697c90104216cc3e1e7a0b278b0684bce2b4790f14

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