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.1.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.1-cp36-cp36m-manylinux1_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.6m

uvloop-0.9.1-cp36-cp36m-manylinux1_i686.whl (3.0 MB view details)

Uploaded CPython 3.6m

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

Uploaded CPython 3.6mmacOS 10.11+ x86-64

uvloop-0.9.1-cp35-cp35m-manylinux1_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.5m

uvloop-0.9.1-cp35-cp35m-manylinux1_i686.whl (2.9 MB view details)

Uploaded CPython 3.5m

uvloop-0.9.1-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.1.tar.gz.

File metadata

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

File hashes

Hashes for uvloop-0.9.1.tar.gz
Algorithm Hash digest
SHA256 7ee14835a75c72227d3f8a3f370519a3106a6f02e5453f275f16437ebdb92953
MD5 d9c44eb5590eedba99a9f402b40ff08a
BLAKE2b-256 f3e005c5c2a879b3ee8427a43ca2abd34cffc172e2cb5c45217d67e06b36a48e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7fba5f390db607b2f026bc598df6b2a2a9e062bffe82910b5ffe2b88560135e5
MD5 92c1ed5b949d0b7b3b9876e1a5b70652
BLAKE2b-256 c28f68cee29ed81da9fea358af72dca506fc17e26e4c5603ba7ac30e55c95e12

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 68574150720a380509a3409bf2941be0199cfdacff144a97502fb29c250ba927
MD5 a8779a0846807013f55722f8dbb62811
BLAKE2b-256 cf7b448ba1ea7494f3fb789a6e708ae91a4c44cb159bc94d8177fc913041b509

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp36-cp36m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 89c3bfaad77625490c42a6b99af1879234767ab0c31dd193486a909506e5e549
MD5 cc8916094fbe5a48487717985468be65
BLAKE2b-256 8b2c814bc60c5ae23ca660164e81c7b1380432988eca96e46fc22b2e8b8bd68f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 b057ef2b0d0162c1ef257f43a95f59bfec37ee9a75cc5412d6b7f9ac6d1d69cb
MD5 bcec4214fdbff06accbc722c3a2ed31b
BLAKE2b-256 a060d7789cde1d05579f48c3dea008bfe5b305962174ee447c6591228c9be621

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 e7c871ba3edd5fcf2afb756de88a9a65245070161e24f75abe79c0a241bb8c76
MD5 56fa212ef4626377e9120d38d12d90f9
BLAKE2b-256 c3f8fcb2c04d70e47d0a6caf030a97fc49c5cf5b24134eedb62ec2ecd53b75c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.9.1-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 01cf7199728867f406ba5af78cc47c80acd663ccc52cae105e737a997f1b2bca
MD5 d8f520013c4c1ad801bd3b8645405668
BLAKE2b-256 565360cad803931b8d558e3b6e9f262dd2a63f4796899232958572540315630c

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