Skip to content

A small, feature complete Clojure client for RabbitMQ that embraces the AMQP 0.9.1 model

Notifications You must be signed in to change notification settings

michaelklishin/langohr

Repository files navigation

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 years of experience with various RabbitMQ clients and tried 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:

[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>

Documentation & Examples

If you are only starting out, please see our Getting Started guide.

Documentation guides:

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

Development

See CONTRIBUTING.md.

License

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.