Coder Social home page Coder Social logo

uvent's Introduction

uvent: A gevent core implemented using libuv

uvent is a gevent core implementation using the libuv library.

uvent uses pyuv, a Python interface for libuv. libuv is a high performance asynchronous networking library used as the platform layer for NodeJS.

libuv provides the same core functionality as libev, with some really nice additions:

  • High performance IO on Windows (not select)
  • Asyncronous file operations
  • Builtin thread pool
  • Asynchronous getaddrinfo
  • Nicer to use API
  • Etc.

Source code for uvent is on GitHub.

Motivation

This is an experimental project to test the feasibility of using libuv as a core for gevent.

Main functionality is working but not all tests are passing and there are some implementation caveats mostly due to the tight integration between gevent and libev. Implementation notes can be found in the NOTES.rst file.

Installation

uvent requires pyuv >= 0.10.0

pip install -U pyuv

Note: uvent only works with gevent >= 1.0rc1, earlier versions are not supported.

Using it

In order to use uvent add the following lines at the beginning of your project, before importing anything from Gevent:

import uvent
uvent.install()

Another way of doing this without modifying your code is by exporting environment variables before running your program:

export GEVENT_LOOP=uvent.loop.UVLoop
export GEVENT_RESOLVER=gevent.resolver_thread.Resolver

Author

Saúl Ibarra Corretgé <[email protected]>

License

uvent uses the MIT license, check LICENSE file.

uvent's People

Contributors

saghul avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.