Skip to content

v4.3.0

Latest

Choose a tag to compare

@ono ono released this 06 Oct 22:01

This release adds transaction and connection APIs while preserving existing defaults and return values.

Added

  • AMQP.Transaction.select/1, commit/1, and rollback/1 for transactional publishing and acknowledgements. Transactions and publisher confirms cannot be enabled on the same channel.
  • Connection introspection through AMQP.Connection.info/2, info_keys/0, info_keys/1, and connection_name/1.
  • AMQP.Connection.register_blocked_handler/2 for connection blocked and unblocked notifications, delivered as Erlang record tuples.
  • Connection close variants: AMQP.Connection.close/2 accepts a timeout in milliseconds, close/3 accepts a custom reply code and text, and close/4 accepts all three.
  • AMQP.Channel.close/3 for a custom reply code and text.
  • AMQP.Queue.purge/3 and AMQP.Confirm.select/2 with :nowait and its alias :no_wait. Both options default to false; setting either to true skips the broker reply and returns :ok.

Compatibility

  • Existing Queue.purge/2 still waits for the broker reply and returns the message count. Existing Confirm.select/1 still waits for the broker reply.
  • Invalid keys passed to Connection.info/2 raise ArgumentError without closing the connection or its channels.
  • Verified with amqp_client 4.2.1 and 4.3.4; all 84 tests pass. The dependency requirement remains ~> 4.0.
  • Documented an upstream limitation: repeated or replaced blocked-handler registrations retain monitors, and a previously registered handler exiting can terminate the connection. Keep those handlers alive until the connection closes.

Maintenance

  • Refreshed locked dependencies, including amqp_client and rabbit_common to 4.3.4.

Pull request: #250

Full changelog: v4.2.1...v4.3.0