Langohr, a feature-rich Clojure RabbitMQ client
Langohr is a Clojure RabbitMQ client that embraces AMQP 0.9.1 Model.
Project Goals
- 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 over 6 years history of the Ruby amqp gem, Bunny, and RabbitMQ Java client development and try to apply this experience to Langohr design.
Project Anti-Goals
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
Artifacts
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>
The Most Recent Release
With Leiningen:
With Maven:
<dependency>
<groupId>com.novemberain</groupId>
<artifactId>langohr</artifactId>
<version>5.4.0</version>
</dependency>
Documentation & Examples
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
API Reference
For existing users, there is API reference.
Code Examples
Several code examples used in the guides are kept in a separate Git repository.
Our test suite also can be used for code examples.
Supported Clojure Versions
Langohr requires Clojure 1.6+. The most recent stable release is highly recommended.
Supported RabbitMQ Versions
Langohr depends on RabbitMQ Java client 5.x and requires a supported RabbitMQ version.
Project Maturity
Langohr has been around since 2011. The API is stable.
Community
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 a ClojureWerkz Project
Langohr is part of the group of libraries known as ClojureWerkz, together with
Continuous Integration
Development
See CONTRIBUTING.md.
License
Copyright (C) 2011-2022 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.