amqp
Client library for AMQP servers (currently only RabbitMQ)
https://github.com/hreinhardt/amqp
| LTS Haskell 24.16: | 0.24.0 |
| Stackage Nightly 2025-10-24: | 0.24.0 |
| Latest on Hackage: | 0.24.0 |
BSD-3-Clause licensed by Holger Reinhardt
Maintained by Holger Reinhardt
This version can be pinned in stack with:
amqp-0.24.0@sha256:ee78a72bb69b8a7a9e55712f086de3ea2cb428f3ebd34fd0a78c7076ca75ae2e,2609Module documentation for 0.24.0
Depends on 16 packages(full list with versions):
Used by 3 packages in nightly-2025-10-24(full list with versions):
Client library for AMQP servers (currently only RabbitMQ)
Changes
Version 0.24.0
- the
fromURImethod now returnsEither String ConnectionOptsto better handle parsing-errors
Version 0.23.0
- bump dependency bounds for
crypton-connection
Version 0.22.2
- replace
connectiondependency withcrypton-connection
Version 0.22.1
- fix a potential deadlock in
closeConnection
Version 0.22.0
closeChannelnow uses aChannelClosedExceptionto kill the channel-thread instead ofThreadKilled. This fixes a bug in 0.21.0 that led to errors being printed on the screen whencloseChannelwas called.
Version 0.21.0
- added method
isNormalChannelClose - Channels that have no explicit exception handlers (added using
addChannelExceptionHandler) will now print all exceptions tostderr, even if those are not of typeChannelClosedException. This is an uncommon situation, so it should not have an observable effect for most users.
Version 0.20.0
fromURInow activates TLS if the URI starts withampqs://. Previously it only changed the port, without activating TLS.fromURInow supports multi-broker URIs in the form ofamqp://user:pass@host-1:port-2,host-2:port-2/vhost
Version 0.19.1
- add
nackMsgandnackEnvmethods
Version 0.19.0
- change
FVStringto be binary instead of UTF-8 encoded
Version 0.18.3
- respond to
channel.closemessages from the server withchannel.close_ok
Version 0.18.2
- support
connection0.3 and drop support fornetwork< 2.6
Version 0.18.1
- new function
addConnectionBlockedHandlerto be notified when the connection is blocked (due to the server being resource-constrained)
Version 0.18.0
ConnectionClosedExceptionandChannelClosedExceptionnow specify whether the close was normal (user-initiated) or abnormal (caused by an AMQP exception)- channels that are abnormally closed and have no exception handler (set using
addChannelExceptionHandler) will now print the error tostderr - new function
getServerPropertiesto get the RabbitMQ server-properties consumeMsgs'now allows setting a consumer-cancellation-callback
Version 0.17.0
- When the server asynchronously closed a channel, this was (erroneously) internally represented as a
ConnectionClosedException. It is now represented as aChannelClosedException. This could affect you if you explicitly match onConnectionClosedExceptionorChannelClosedExceptionin your code, for example when usingaddChannelExceptionHandler.
Version 0.16.0
- new
coNamefield inConnectionOptsto specify a custom name that will be displayed in the RabbitMQ web interface
Version 0.15.1
- export the
AckTypedata-type and constructors
Version 0.15.0
- The way channels are closed internally was changed. This may affect you if you have installed an exception handler inside the callback passed to
consumeMsgs. Specifically, the exceptions used internally to close channels are now wrapped insideChanThreadKilledException. You should make sure to re-throw this exception if you did catch it.
Version 0.14.1
- show all exceptions if no host can be connected to
Version 0.14.0
- publishMsg now returns the message sequence-number
- new
TLSCustomfield inTLSSettings
Version 0.13.1
- don’t print to stderr when
openConnectionfails to connect to a broker
Version 0.13.0
- support for RabbitMQ publisher confirms
Version 0.12.3
- send version info of this library to RabbitMQ on connecting
Version 0.12.2
- GHC 7.10 compatibility
Version 0.12.1
- error messages now go to stderr
Version 0.12.0
- new function addChannelExceptionHandler
Version 0.11.0
- all content fields for messages are now supported
Version 0.10.0
- the maximum number of channels can now be set
Version 0.9.0
- add ‘global’ flag for qos
Version 0.8.3
- implement closeChannel
Version 0.8.0
- TLS support
- new helper function rejectEnv
- new field exchangeArguments in ExchangeOpts
- new module Network.AMQP.Lifted with consumeMsgs functions lifted to MonadBaseControl
Version 0.7.0
- new function fromURI to parse AMQP URIs
- heartbeat support
Version 0.6.0
- new function addReturnListener which allows specifying a handler for returned messages
- new function openConnection’’ with support for most AMQP connection options
- better error message on failed connection handshake
Version 0.5.0
- support for AMQP 0-9-1
- new function consumeMsgs’ which allows you to pass in a field-table
- new function bindExchange allows for binding an exchange to another exchange
- new function unbindQueue allows unbinding a queue from an exchange
- new function unbindExchange allows unbinding an exchange from an exchange
Version 0.4.3
- use Handles instead of sockets
- fix deprecation warnings from Data.Binary
Version 0.4.2
- add (Read, Ord, Eq, Show) instances for most data-types
Version 0.4.1
- add queueHeaders field to QueueOpts
Version 0.4
- Data.Text is now used instead of Strings. Using the OverloadedStrings extension will make upgrading easier
- the field-types in Network.AMQP.Types should now be more compatible with RabbitMQ
- hostnames passed to openConnection will now be resolved
- basic QoS support
- exceptions thrown in a callback will not erroneously close the channel anymore