Open-source messaging libraries, built on one idea: a message should never disappear quietly.

Start here

Tutorials v0.1.0

Seven steps, from a first message to observability, in Java, Python, Ruby, .NET and Go side by side. Each language has an image with its toolchain, the library and a RabbitMQ inside, so one command runs a step: docker run --rm -p 15672:15672 ghcr.io/acemq-company/acemq-tutorials-python step 1.

Libraries

JVMJava, Spring Boot

AceMQ for Java 0.7.15

AMQP for Java. Reliable publishing with confirms, retries the broker enforces, dead-letter and parking queues with replay, streams, pipelines, ordered consumption, and five serialization formats.

Examples

Runnable, self-contained examples for the Java library — each one compiled and run against a real broker in CI, so none of them rots quietly.

Spring Boot starter v0.3.1

Auto-configuration for the Java library: one connection, a declared topology, annotated listeners, health and metrics — configured from application.yaml. Spring Boot 3 and 4 from one artifact, and the auto-configure module runs on Boot 2.7 as well.

RabbitMQ Admin v0.2.0

RabbitMQ's HTTP management API for Java: users, vhosts, permissions, policies, federation and shovels, health checks, definitions export and import, and the queue facts AMQP cannot report. Deliberately separate from the messaging library, because nothing on a message path should depend on a product-specific management endpoint.

Workloads v0.8.0

A load generator for AMQP brokers: a workload DSL, an open-loop rate schedule that measures latency against intended send time rather than actual, and a report that says what it measured rather than what you should conclude.

.NETC#, VB.NET

AceMQ for .NET 0.7.13

AMQP for C# and VB.NET from a single assembly, targeting netstandard2.0 so it reaches .NET Framework 4.6.2 as well as .NET Core and modern .NET — the RabbitMQ transport included. Publishing with confirms, consumers with explicit dispositions, topology, retries and dead-lettering, tested against a real broker in CI. The envelope is pinned to Java's by fixtures generated from it rather than copied from its documentation.

Hosting v0.2.3

Dependency injection and hosted-service integration for the .NET library: AddAceMq, a BackgroundService consumer host, and health checks. Built on AceMQ for .NET 0.7.13.

Go

AceMQ for Go v0.9.9

AMQP for Go, with a core that has no dependencies outside the standard library — the RabbitMQ transport lives in a subpackage, so a program that only uses the in-memory broker never links an AMQP client. Publishing, consumers that return their disposition rather than calling a method, topology, retries and dead-lettering, tested against a real broker in CI. The envelope is pinned to Java's by the same fixtures the .NET library uses. Connections recover by themselves, and the five extra codec formats are modules of their own so the core keeps one dependency.

Dynamic languages

AceMQ for Python v0.7.12

AMQP for Python, pinned to the same envelope as the other libraries by a shared conformance suite, so a Python consumer reads what a Java producer wrote.

FastAPI integration v0.1.5

A lifespan that owns the connection and consumers, and dependencies for publishing from a route. Requires acemq-amqp>=0.7.12.

AceMQ for Ruby v0.7.14

AMQP for Ruby, held to the same envelope and conformance suite as every other AceMQ library.

Rails integration v0.2.4

A Railtie, configuration under config.acemq, and a consumer process for running handlers outside the web server. Requires acemq-amqp ~> 0.7.14.

Using the Java library

<repositories>
  <repository>
    <id>acemq</id>
    <url>https://acemq-company.github.io/maven/</url>
  </repository>
</repositories>

<dependency>
  <groupId>org.acemq</groupId>
  <artifactId>acemq-amqp-core</artifactId>
  <version>0.7.15</version>
</dependency>
<dependency>
  <groupId>org.acemq</groupId>
  <artifactId>acemq-transport-rabbitmq</artifactId>
  <version>0.7.15</version>
  <scope>runtime</scope>
</dependency>

Both are needed. The transport is discovered at runtime from the amqp:// scheme in your URL, so your code never compiles against it — but without it on the classpath a connection fails with no transport for scheme amqp.

Artifacts

Maven repository

Everything published under org.acemq, with sources and Javadoc, readable without credentials. Not Maven Central yet: that is permanent, and coordinates are still settling before 1.0.

NuGet feed

A static NuGet v3 feed on the same terms — readable without credentials, and published by committing rather than pushing. dotnet restore, dotnet add package and floating versions all work against it; search does not, because a static host cannot serve that resource.

Python package index

A static index for the Python library and its integrations, readable without credentials — point pip at it with --extra-index-url.

Gem source

A static gem source for the Ruby library and its Rails integration, readable without credentials — add it as a source in your Gemfile.

Support

AceMQ Enterprise support

Architecture review, production readiness, TLS and permission design, and incident response for RabbitMQ and for these libraries. The libraries are complete and free to use without it, and are not crippled to sell it.