Welcome to kiwiPy’s documentation!

Coveralls Github Actions Latest Version https://img.shields.io/pypi/pyversions/kiwipy.svg https://img.shields.io/pypi/l/kiwipy.svg https://joss.theoj.org/papers/10.21105/joss.02351/status.svg

kiwiPy is a library that makes remote messaging using RabbitMQ (and possibly other message brokers) EASY. It was designed to support high-throughput workflows in big-data and computational science settings and is currently used by AiiDA for computational materials research around the world. That said, kiwiPy is entirely general and can be used anywhere where high-throughput and robust messaging are needed.


  • Support for 1000s of messages per second

  • Highly robust - no loss of messages on connection interruptions, etc., as messages are automatically persisted to disk

  • Generic communicator interface with native support for RabbitMQ

  • Supports task queues, broadcasts and RPC

  • Support for both thread and coroutine based communication

  • Python 3.6+ compatible.

Getting Started

  • To install kiwiPy follow the instructions in the installation section

  • After you have successfully installed kiwipy, give in to some of the examples to see what kiwiPy can do.

  • The design concepts behind kiwiPy can be found in concepts section

  • If you’re already familiar with Pika you might find the coming from pika section useful

  • Finally check out the complete API documentation

Development Contributions

Want a new feature? Found a bug? Want to contribute more documentation or a translation perhaps? Help is always welcome, get started with the contributing guide.


If you use kiwiPy directly or indirectly (e.g. by using AiiDA) then please cite:

Uhrin, M., & Huber, S. P. (2020). kiwiPy : Robust , high-volume , messaging for big-data and computational science workflows, 5, 4–6. http://doi.org/10.21105/joss.02351

This helps us to keep making community software.


This software follows Semantic Versioning