View Source Changelog
0.4.2
Bug fixes
- Better handle the server's semver parsing #20
0.4.1
Bug fixes
- Split user and internal commands buffers
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_valueconsumer parameter, and:createsuperstream,:deletesuperstream,:route,:partitionscommands. - Initial support for SuperStreams, with RabbitMQStream.SuperConsumer and RabbitMQStream.SuperPublisher.
- Added
handle_message/1callback for processing messages individually, ignoring messages happened before the minimal:offsetexepected by the consumer, and the messages that don't match the:filter_value, as documented on the blog post
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.SubscribertoRabbitMQStream.Consumer - Renamed
RabbitMQStream.PublishertoRabbitMQStream.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 - Thehandle_chunk/1callback no longer receives decoded messages. It must be done manually by the user. ## 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