4. Changelog

4.1. Year 2024

4.1.1. 2024-05-04, ver. 0.8.3

  • fix errors in rbfly.streams.connection decorator

4.1.2. 2024-03-19, ver. 0.8.2

  • improve type annotations for rbfly.streams.connection decorator

4.1.3. 2024-01-07, ver. 0.8.1

  • fix typo: stream_messsage_ctx -> stream_message_ctx

4.2. Year 2023

4.2.1. 2023-11-02, ver. 0.8.0

  • allow tls connections to rabbitmq streams broker

  • publish performance test results for amqp 1.0 codecs

  • flush batch publisher on exit from an asynchronous context manager of a publisher

  • avoid publisher ids and subscriber ids overflow by reusing and controlling the ids

4.2.2. 2023-09-15, ver. 0.7.3

  • add support for null values in amqp messages

  • use cython 3.0.2 to build rbfly binary extensions

4.2.3. 2023-07-09, ver. 0.7.2

  • fix binary only decoder of rabbitmq streams messages

  • fix reading duplicate messages when re-subscribing to a rabbitmq stream

4.2.4. 2023-06-25, ver. 0.7.1

  • fix reconnection to rabbitmq streams broker, which was failing due to hidden subscriber class attributes

4.2.5. 2023-06-21, ver. 0.7.0

  • rbfly is beta software, now

  • add support for deduplication of published messages

  • add support for publishing messages with amqp application properties

  • publish performance test results for message publishing

  • include aiokafka and apache kafka in message publishing performance tests

  • fix potential buffer overflow issues when decoding message publishing confirmations

  • use cython 3.0.0b2 to build rbfly binary extensions

  • rename PublisherBatch class as PublisherBatchFast class

  • rename PublisherBatchMem class as PublisherBatchLimit class

4.2.6. 2023-05-12, ver. 0.6.2

  • fix parsing of virtual host in rabbitmq streams uri, i.e. /vhost -> vhost but / remains as /

4.2.7. 2023-03-18, ver. 0.6.1

  • fix message id value type; it is 64-bit, not 32-bit value

4.2.8. 2023-02-04, ver. 0.6.0

  • fix various buffer overflow issues

  • split batch of messages, and send multiple batches, when the batch is too big to fit into rabbitmq streams protocol frame

  • increase initial credit value to 128; this improves performance of reading messages with rabbitmq 3.11.8; the possible memory footprint of 400 MB to read messages still seems to be acceptable

  • adapt to rabbitmq 3.11.8 changes related to the handling of stream subscription credit

4.3. Year 2022

4.3.1. 2022-12-22, ver. 0.5.6

  • fix processing of credit value of rabbitmq stream subscription, when messages were published in batches

4.3.2. 2022-12-19, ver. 0.5.5

  • improve maintenance of rabbitmq stream’s subscription credit

4.3.3. 2022-11-23, ver. 0.5.4

  • fix authentication with rabbitmq streams broker (send password if specified, not username)

4.3.4. 2022-11-11, ver. 0.5.3

  • use recursive definition for container amqp types, i.e. sequence can contain another sequence or a dictionary

  • documentation improvements

4.3.5. 2022-11-01, ver. 0.5.2

  • fix encoding of binary data in containers, i.e. list of elements having bytes type

4.3.6. 2022-10-16, ver. 0.5.1

  • fix deadlock of rabbitmq streams protocol publish method when no messages are sent

4.3.7. 2022-10-09, ver. 0.5.0

  • implement rabbitmq streams batching publisher with memory protection and concurrently working from multiple asynchronous coroutines

  • send heartbeat if there is no communication from rabbitmq streams broker and restart connection if no response

4.3.8. 2022-09-12, ver. 0.4.2

  • allow sending messages via a streams publisher from multiple coroutines

  • improve rabbitmq streams connection decorator type annotations

4.3.9. 2022-08-16, ver. 0.4.1

  • minor fixes post 0.4.0 release

4.3.10. 2022-08-16, ver. 0.4.0

  • add support for encoding and decoding of timestamp and UUID values in amqp 1.0 codec

  • add support for decoding of message annotations and application properties of amqp message

  • fix amqp decoder when dealing with unsigned char values (i.e. size of a byte string)

  • fix storing of rabbitmq streams timestamp in message context object

4.3.11. 2022-05-23, ver. 0.3.0

  • api change: do not store stream offset value in stream subscription method to give more control over the action to a programmer

  • implement rabbitmq streams client method to store stream offset value

  • implement function to get message context for a received stream message

4.3.12. 2022-05-13, ver. 0.2.0

  • change publisher reference name scheme to <hostname>/<pid>

  • allow to set publisher reference name when creating a stream publisher

  • improve handling of rabbitmq streams disconnections

  • increase sleep time when retrying stream subscription or rabbitmq streams broker reconnection (current sleep time is too aggressive with simple broker restart)

4.3.13. 2022-04-13, ver. 0.1.1

  • fix handling of multiple disconnection requests, i.e. when multiple coroutines share a client

  • properly propagate asynchronous generators via the connection decorator

4.3.14. 2022-04-06, ver. 0.1.0

  • improvements to decoding of amqp messages

  • fix compilation issues on macos and freebsd operating systems

4.3.15. 2022-03-25, ver. 0.0.4

  • add support for value of type list in amqp messages

4.3.16. 2022-03-24, ver. 0.0.3

  • add support for values of type boolean, integer, float, and dictionaries in amqp messages

4.3.17. 2022-01-24, ver. 0.0.2

  • fix encoding of messages

4.3.18. 2022-01-16, ver. 0.0.1

  • initial release