Welcome to Gruvi

Gruvi is an IO 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 used coroutines based on fibers to create a traditional sequential programming model on top of the libuv event-based callback model.

Gruvi comes with batteries included. In addition to its base IO support, it includes robust implementations for important protocols such as SSL/TLS and HTTP.

Gruvi values:

  • Performance. Gruvi’s main dependencies, libuv and fibers, have a very strong focus on performance and so does Gruvi itself.
  • Scalability. Thanks to libuv and the low memory usage of fibers, Gruvi should be able to support hundreds of thousands of concurrent connections.
  • Platform support. All supported platforms (Posix, Mac OS X and Windows) are first-class citizens. This is mostly thanks to libuv.
  • Minimalistic design. Gruvi tries to be a small and maintainable framework.

Gruvi is similar in concept to asyncio, gevent, and eventlet. For a rationale on why I’ve created a new library, see Rationale.


Gruvi is free software, available under the MIT license.

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

Table Of Contents

Next topic