Skip to content

cocagne/gruvi

 
 

Repository files navigation

Welcome to Gruvi

Gruvi is a network library for Python. It combines the efficiencies of event-based I/O with a sequential programming model. Gruvi uses libuv (via pyuv) as the underlying high-performance event-based 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 comes with batteries included. It has out of the box support for SSL, HTTP (both client and server), JSON-RPC and D-BUS.

Gruvi values:

  • Performance. Gruvi's main dependencies, libuv and fibers, have a very strong focus on performance and so does Gruvi itself. Gruvi also contains a very fast HTTP implementation based on the Joyent/Node.js event driven http-parser.
  • Scalability. Thanks to libuv and the low memory usage of fibers, Gruvi can support hundreds of thousands of concurrent connections.
  • Platform support. All supported platforms (Posix, Mac OSX and Windows) are first-class citizens. This is mostly thanks to libuv.
  • Minimalistic design. All of Gruvi is less than 4,000 lines of Python.

CI Status

image

Requirements

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
  • Windows

Download

Source are available from Github.

Documentation

The documentation is available on readthedocs.

License

Gruvi is free software, available under the MIT license.

Contact

Feel free to contact the author at geertj@gmail.com. You can also submit tickets or suggenstions for improvements on Github.

About

Synchronous evented IO

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 77.3%
  • C 22.7%