Welcome to kiwiPy’s documentation!¶
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.
Features¶
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.7+ 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.
Table Of Contents¶
Citing¶
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.
Versioning¶
This software follows Semantic Versioning