1. Overview
RbFly is a library for RabbitMQ Streams using Python asyncio.
1.1. Features
The library is designed and implemented with the following qualities in mind
Simple, flexible, and asynchronous Pythonic API with type annotations.
Use of AMQP 1.0 message format to enable interoperability between RabbitMQ Streams clients.
Performance. For example, RbFly can be over 4 times faster than other, similar solutions when publishing messages to a streaming broker (see Section 8).
Auto reconnection to RabbitMQ broker with lazily created connection objects.
RbFly supports many RabbitMQ Streams broker features
Publishing single messages, or in batches, with confirmation.
Subscribing to a stream at a specific point in time, from a specific offset, or using offset reference.
Stream message filtering.
Writing stream offset reference.
Message deduplication.
Integration with AMQP 1.0 ecosystem at message format level.
1.2. Requirements
RbFly requires
Python 3.11, or later
RabbitMQ 3.13.0, or later
Cython 3.0.0 (for development)
1.3. Installation
Install or upgrade RbFly from PyPi with pip command:
$ pip install -U rbfly
1.4. Documentation
The documentation of RbFly library is hosted at project’s website at the address
The documentation consists of multiple parts. Each part can be downloaded in PDF format
Document |
URL |
---|---|
RbFly Library |
|
RbFly Library Performance Report |
https://wrobell.dcmod.org/rbfly/rbfly-performance-0.10.0.pdf |
1.5. Links
RbFly project website: https://wrobell.dcmod.org/rbfly/index.html
Report bugs for RbFly project: https://gitlab.com/wrobell/rbfly/-/issues
View RbFly library source code: https://gitlab.com/wrobell/rbfly
RabbitMQ Streams: https://www.rabbitmq.com/streams.html
RabbitMQ Streams Java library: https://rabbitmq.github.io/rabbitmq-stream-java-client/stable/htmlsingle/
RabbitMQ discussions: https://groups.google.com/g/rabbitmq-users/
1.6. Acknowledgements
The design and implementation of RbFly library is inspired by other projects