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

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.6.0.tar.gz (1.9 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.6.0-cp35-cp35m-manylinux1_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.5m

uvloop-0.6.0-cp35-cp35m-manylinux1_i686.whl (2.5 MB view details)

Uploaded CPython 3.5m

uvloop-0.6.0-cp35-cp35m-macosx_10_11_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.5mmacOS 10.11+ x86-64

File details

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

File metadata

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

File hashes

Hashes for uvloop-0.6.0.tar.gz
Algorithm Hash digest
SHA256 506ec1d1139fd10793d0d16f6dc362df5b5e1615ec1b073e617fe7b628ea250e
MD5 110567fb15ef9ace3a3e04c644634898
BLAKE2b-256 8fa9fbb7da67e9a88b95e4d2666c4156fd485240e8dd81b21291a1066786b89a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.6.0-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 83c7bb6ef5edf92dc2f0e316cf2170163639da751a9a4bb414bad78c756849d9
MD5 cf325f6e354f62d9ae670eb4c2e4c034
BLAKE2b-256 508353ebad9aea6cd931f10c1c43b1ae8acaa6ab229f81672cdac3c592cf488b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.6.0-cp35-cp35m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 5810fc9fd859b082c5b8ee8c26ca3b178f6c504c43674481b401a4f1a8ce0462
MD5 4dc1adc6156e8a8db27a45e2eacf25e4
BLAKE2b-256 8b7ac1bf22c4c8543839bd3840ea22697a8eb94b34d2a5e39a3505652d08760a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for uvloop-0.6.0-cp35-cp35m-macosx_10_11_x86_64.whl
Algorithm Hash digest
SHA256 223fcaea482baae7f55f779cec2fe3b499a92234926543668513097efe988d67
MD5 73dfec1ccc05c145c371676ceb6cf9a9
BLAKE2b-256 9f3a2495a573409a1013deba5d3762cb04f550cd72e296fb323385906e141521

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