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.8.1.tar.gz (1.7 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.8.1-cp36-cp36m-manylinux1_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.6m

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

Uploaded CPython 3.6m

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

Uploaded CPython 3.6mmacOS 10.11+ x86-64

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.5m

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

Uploaded CPython 3.5mmacOS 10.11+ x86-64

File details

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

File metadata

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

File hashes

Hashes for uvloop-0.8.1.tar.gz
Algorithm Hash digest
SHA256 923b6e4982aea14a23565e6e62335a691b7a939bcc6802fbafa2a146ee3e8ac3
MD5 74e24dfee440468fd580b2020c28fc75
BLAKE2b-256 8a902ee7d33ed33cdd493f1f2e78ca2c3cb7823e2dceb875ac52e7096d4f6004

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 743054284de305d292076496ed3b7fd3b353fba5fe7ff8294774a5bc0cc933e9
MD5 4d6516da1e5344ef1ad1cf546f84a94a
BLAKE2b-256 4738f8338ef7a9e48a701452346260f1a0e37344aadbfc9444475089b4e45678

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 a08921f636665295d62a233422895cb2c402264f1448f9d548ad9f0e0aed817e
MD5 22b212bebb8e39c06cc4b4745800fee5
BLAKE2b-256 6d8e1da324869ab804d098917a805305b0fef61424d72b6e329a9b544a0dfb83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 6b21fb185a9ed9e9dd60694585e6cc88a5d510779eacc37ce6d10821cdc3f68b
MD5 3a8a6cb98f2a4179e723e0b591d83bda
BLAKE2b-256 db3634a661e93952d1d1c67f44b5ab57e9eb283b14a03cbf2995912720c90c7b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 04ab8d1ff18ebc8fd649742299557c1de1656c27e2b6e291c42443e4479d0878
MD5 03ad362ba3a924873bc5e26a036e22f2
BLAKE2b-256 2a16de4bccee5007fb36bfff05e24ed4228bdc7c58f8c717c1da3b71e5a65631

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 fd5ce82603a328c8029d10faf58714e8377ecd313f6e1244f128a89cecbcc532
MD5 98ec746b3481440e266c27770e2d0b53
BLAKE2b-256 1cdb5d04598be3ab527506d2e3e6b1453ddb72a9c260cb530fa927749a295f33

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.8.1-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 c29d8203fff2eb2d5e5b6d6a9bba008c39bd425117cc460914b58b0326d660d9
MD5 bea89567108cfc2fc841b58d1e3679cf
BLAKE2b-256 8ba6cd4a36081654cbdbaf4446c13ec72d53bc9ec76b18430114c3417d257c8c

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