Synchronous evented IO with pyuv and fibers
Gruvi is a network library for Python. It combines the efficiencies of evented I/O with a sequential programming model. Gruvi uses libuv (via pyuv) as the underlying high-performance evented I/O layer, and coroutines based on fibers to create a traditional sequential programming model on top of the evented I/O callback API.
Gruvi features include:
- A PEP3153 Transport/Protocol based API, like Twisted, and asyncio.
- A sequential programming model using regular Python function calls on top of the platform specific evented I/O core. You don’t need to use callbacks or yield from to call a potentially blocking operation. When a operation would block the current fiber is automatically suspended, and it is resumed when the operation completes.
- A high-performance SSL transport implementation.
- A high-performance HTTP protocol client and server protocol implementation, based on the node.js http-parser.
- High performance protocol implementations for D-BUS (client) and JSON-RPC (client and server).
- Thread-safe synchronization primitives including locks, signals and queues.
- Uses node.js libuv as the I/O core, via pyuv. This means that gruvi uses the I/O model that is most efficient on each platform. On Posix and Mac OSX it uses non-blocking I/O via a reactor, while on Windows it uses asynchronous (“overlapped”) I/O via I/O completion ports.
- Excellent platform support (thanks to libuv). Posix, Mac OSX and Windows are all first-class citizens.
- Support for executing asynchronous functions in a thread or fiber pool using a concurrent.futures API.
- A managed threadpool to integrate with third-party libraries that use blocking I/O.
You need Python 2.6, 2.7 or 3.3+.
The following operating systems are currently tested:
- Posix (Only Linux is currently tested)
- Mac OSX
Download the source from Github:
$ git clone https://github.com/geertj/gruvi $ pip install -r requirements.txt $ python setup.py build $ python setup.py install
To run the test suite:
$ pip install -r dev-requirements.txt $ nosetests
The documentation is available on readthedocs.
Gruvi is free software, available under the MIT license.
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, size||File type||Python version||Upload date||Hashes|
|Filename, size gruvi-0.9.1.tar.gz (111.2 kB)||File type Source||Python version None||Upload date||Hashes View|