View Source Changelog

0.4.0

Added support for RabbitMQ 3.13, with Route, Partitions and SuperStreams support.

0.4.0 Features

  • Support for :consumerupdate, :exchangecommandversions, :streamstats, commands.
  • Serialization options for encoding and decoding messages.
  • TLS Support
  • Functional single-active-consumer.
  • Initial support for filter_value consumer parameter, and :createsuperstream, :deletesuperstream, :route, :partitions commands.
  • Initial support for SuperStreams, with RabbitMQStream.SuperConsumer and RabbitMQStream.SuperPublisher.

0.4.0 Changes

The 'Message' module tree was refactored to make all the Encoding and Decoding logic stay close to each other.

  • Improved the cleanup logic for closing the connection.
  • Publishers and Consumers now expects any name of a GenServer process, instead of a Module.
  • Added checks on supported commands based on Server version, and exchanged commands versions.

0.4.0 Breaking Changes

  • Renamed RabbitMQStream.Subscriber to RabbitMQStream.Consumer
  • Renamed RabbitMQStream.Publisher to RabbitMQStream.Producer
  • Each Deliver action made by the connection is now done with a {:deliver, %RabbitMQStream.Message.Types.DeliverData{}} tuple - Offset Tracking now prefers to use CommitedOffset when available ## 0.3.0 Added an implementation for a stream Consumer, fixed bugs and improved the documentation. ### 0.3.0 Features - Added the:creditcommand. - AddedRabbitMQStream.Subscriber, which subscribes to a stream, while tracking its offset and credit based on customizeable strategies. - Added the possibility of globally configuring the default Connection for Publishers and Subscribers ### 0.3.0 Bug Fixes - Fixed an issue where tcp packages with multiple commands where not being correctly parsed, and in reversed order ### 0.3.0 Changes -RabbitMQStream.Publisherno longer callsconnecton the Connection during its setup. - MovedRabbitMQStream.Publisher's setup logic intohandle_continue, to prevent locking up the application startup. -RabbitMQStream.Publisherno longer declares the stream if it doesn't exists. -RabbitMQStream.Publishermodule now can optionally declare abefore_start/2callback, which is called before it callsdeclare_publisher/2, and can be used to create the stream if it doesn't exists. -RabbitMQStream.Connectionnow buffers the requests while the connection is not yet:open. ### 0.3.0 Breaking Changes - Subscription deliver messages are now in the format}. ## 0.2.1 Documentation and Configuration refactoring - It is now possible to define the connection and subscriber parameters throught theconfig.exsfile - Documentation improvements, and examples ## 0.2.0 The main objective of this release is to remove the manually added code fromrabbitmq_stream_common`'s Erlang implementation of Encoding and Decoding logic, with frame buffering. ## 0.1.0 Initial release with the following features: - Opening connection to RabbitMQ server - Declaring a Stream - Creating a Stream Publisher - Subscribing to Stream Messages - Initial Hex Release