Langohr is a Clojure RabbitMQ client that embraces AMQP 0.9.1 Model.
- Embrace AMQP 0.9.1 Model. Follow Java client's API conventions instead of inventing new overly opinionated ones
- Be well documented. Use Ruby amqp gem guides as a foundation.
- Be well tested.
- Error handling and recovery should be well covered
- Support all of the RabbitMQ features, include extensions to AMQP 0.9.1.
- Make error handling and recovery easier
We've learned a lot from years of experience with various RabbitMQ clients and tried to apply this experience to Langohr design.
Here is what Langohr does not try to be:
- A replacement for the RabbitMQ Java client
- Sugar-coated API for task queues that hides all the protocol machinery from the developer
- A port of Bunny to Clojure
Langohr artifacts are released to Clojars. If you are using Maven, add the following repository
definition to your pom.xml
:
<repository>
<id>clojars.org</id>
<url>http://clojars.org/repo</url>
</repository>
With Leiningen:
[com.novemberain/langohr "5.5.0"]
With deps.edn
:
com.novemberain/langohr {:mvn/version "5.5.0"}
With Maven:
<dependency>
<groupId>com.novemberain</groupId>
<artifactId>langohr</artifactId>
<version>5.5.0</version>
</dependency>
If you are only starting out, please see our Getting Started guide.
- AMQP 0.9.1 Concepts
- Connecting To The Broker
- Queues and Consumers
- Exchanges and Publishing
- Bindings
- Durability
- TLS/SSL
For existing users, there is API reference.
Several code examples used in the guides are kept in a separate Git repository.
Our test suite also can be used for code examples.
Langohr requires Clojure 1.6+. The most recent stable release is highly recommended.
Langohr depends on RabbitMQ Java client 5.x and requires a supported RabbitMQ version.
Langohr has been around since 2011. The API is stable.
Langohr has a mailing list. Feel free to join it and ask any questions you may have.
To subscribe for announcements of releases, important changes and so on, please follow @ClojureWerkz on Twitter.
Langohr is part of the group of libraries known as ClojureWerkz, together with
See CONTRIBUTING.md.
Copyright (C) 2011-2024 Michael S. Klishin and the ClojureWerkz Team.
Double licensed under the Eclipse Public License (the same as Clojure) or the Apache Public License 2.0.