TL;DR

Langohr is a Clojure RabbitMQ client that embraces AMQP 0.9.1 Model.

1.4.0 is a minor feature release that primarily improves pre-1.1.0 version compatibility and connection recovery features.

Changes between Langohr 1.3.0 and 1.4.0

Network Recovery Callbacks on Connections and Channels

They can be used to re-declare necessary entities using langohr.core/on-recovery:

(langohr.core/on-recovery conn (fn [conn] (comment ...)))

(langohr.core/on-recovery ch   (fn [ch] (comment ...)))

Unlike OO clients that represent queues and exchanges as objects, Langohr cannot be more aggressive about redeclaring entities during connection recovery.

Changes between Langohr 1.2.0 and 1.3.0

Re-introduce langohr.consumers/create-queueing

The function creates a QueueingConsumer instance and is very similar to langohr.consumers/create-default in purpose.

Sometimes combining a queueing consumer with langohr.consumers/deliveries-seq is the best way to express a problem.

Rename langoh.consumers/consumers-seq to langoh.consumers/deliveries-seq, make it public

langoh.consumers/deliveries-seq is a function that turns a QueueingConsumer instance into a lazy sequence of deliveries.

Use :executor During Connection Recovery

Connection recovery after network failure will now respect the :executor option.

Changes between Langohr 1.1.0 and 1.2.0

Langohr Again Uses RabbitMQ Java Client Interfaces

Langohr’s implementation of connection and channel now implements RabbitMQ Java client’s interfaces for connection and channel.

Change Log

Langohr change log is available on GitHub.

Langohr is a ClojureWerkz Project

Langohr is part of the group of libraries known as ClojureWerkz, together with

  • Elastisch, a minimalistic well documented Clojure client for ElasticSearch
  • Welle, a Riak client with batteries included
  • Monger, a Clojure MongoDB client for a more civilized age
  • Neocons, a client for the Neo4J REST API
  • Quartzite, a powerful scheduling library

and several others. If you like Langohr, you may also like our other projects.

Let us know what you think on Twitter or on the Clojure mailing list.

Michael on behalf of the ClojureWerkz Team