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

  1. Simple, flexible, and asynchronous Pythonic API with type annotations.

  2. Use of AMQP 1.0 message format to enable interoperability between RabbitMQ Streams clients.

  3. Performance. For example, RbFly can be over 3.5 times faster than other, similar solutions when publishing messages to a streaming broker (see Section 6).

  4. Auto reconnection to RabbitMQ broker with lazily created connection objects.

RbFly supports many RabbitMQ Streams broker features

  1. Publishing single messages, or in batches, with confirmation.

  2. Subscribing to a stream at a specific point in time, from a specific offset, or using offset reference.

  3. Writing stream offset reference.

  4. Message deduplication.

  5. Integration with AMQP 1.0 ecosystem at message format level.

1.2. Requirements

RbFly requires

  • Python 3.10, or later

  • RabbitMQ 3.11.17, 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

https://wrobell.dcmod.org/rbfly/rbfly-0.8.3.pdf

RbFly Library Performance Report

https://wrobell.dcmod.org/rbfly/rbfly-performance-0.8.3.pdf

1.6. Acknowledgements

The design and implementation of RbFly library is inspired by other projects