amqp
Client library for AMQP servers (currently only RabbitMQ)
https://github.com/hreinhardt/amqp
| Version on this page: | 0.22.2 | 
| LTS Haskell 24.18: | 0.24.0 | 
| Stackage Nightly 2025-11-03: | 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.22.2@sha256:83fb9b69e7fd2ed53cd50bcccbcb8becc321d674e05c209457e56d4828c8ab42,2529Module documentation for 0.22.2
Depends on 15 packages(full list with versions):
Client library for AMQP servers (currently only RabbitMQ)
Changes
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