amqp
Client library for AMQP servers (currently only RabbitMQ)
https://github.com/hreinhardt/amqp
LTS Haskell 22.43: | 0.22.2 |
Stackage Nightly 2024-11-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,2609
Module documentation for 0.24.0
Depends on 16 packages(full list with versions):
Used by 2 packages in nightly-2024-11-24(full list with versions):
Client library for AMQP servers (currently only RabbitMQ)
Changes
Version 0.24.0
- the
fromURI
method now returnsEither String ConnectionOpts
to better handle parsing-errors
Version 0.23.0
- bump dependency bounds for
crypton-connection
Version 0.22.2
- replace
connection
dependency withcrypton-connection
Version 0.22.1
- fix a potential deadlock in
closeConnection
Version 0.22.0
closeChannel
now uses aChannelClosedException
to kill the channel-thread instead ofThreadKilled
. This fixes a bug in 0.21.0 that led to errors being printed on the screen whencloseChannel
was 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
fromURI
now activates TLS if the URI starts withampqs://
. Previously it only changed the port, without activating TLS.fromURI
now supports multi-broker URIs in the form ofamqp://user:pass@host-1:port-2,host-2:port-2/vhost
Version 0.19.1
- add
nackMsg
andnackEnv
methods
Version 0.19.0
- change
FVString
to be binary instead of UTF-8 encoded
Version 0.18.3
- respond to
channel.close
messages from the server withchannel.close_ok
Version 0.18.2
- support
connection
0.3 and drop support fornetwork
< 2.6
Version 0.18.1
- new function
addConnectionBlockedHandler
to be notified when the connection is blocked (due to the server being resource-constrained)
Version 0.18.0
ConnectionClosedException
andChannelClosedException
now 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
getServerProperties
to 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 onConnectionClosedException
orChannelClosedException
in your code, for example when usingaddChannelExceptionHandler
.
Version 0.16.0
- new
coName
field inConnectionOpts
to specify a custom name that will be displayed in the RabbitMQ web interface
Version 0.15.1
- export the
AckType
data-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
TLSCustom
field inTLSSettings
Version 0.13.1
- don’t print to stderr when
openConnection
fails 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