OSS TanbouSign in with GitHub

connect Rust services to RabbitMQ over AMQP 0-9-1 with runtime-agnostic async APIs

OSS scale score 181.8OSS health 100
About these scores

OSS scale score is an unbounded metric that log-compresses and weights Stars, Watchers, Forks, and Contributors. Discovery score is the current OSS scale score minus the score at discovery. Update pace is commits in the last 30 days, growth momentum is the OSS scale score difference within the recent observation window, and OSS health is a 0–100 rating based on available recency, Community Health, and release data.

Stars
1,237
Primary language
Rust
License
MIT
Repository last updated
Sep 18, 2026
On this page

Overview

Lapin is an AMQP 0-9-1 client for Rust targeting RabbitMQ. It supports Tokio, Smol, and async-global-executor and provides connections, channels, queue declarations, publishing, consuming, acknowledgements, TLS, and automatic recovery.

Features and best fit

Based on official documentation; not hands-on tested · Content checked:

Key features

Use asynchronous connection, channel, publish, consume, and acknowledgement APIs

Applications create AMQP connections and channels, declare queues, publish messages, consume deliveries, and acknowledge them through futures-based APIs.

Sources: [2]

Choose Tokio or Smol runtimes and multiple TLS backends

Tokio and rustls are defaults, while Smol, async-global-executor, native-tls, and OpenSSL can be selected through features. Custom Runtime values are also supported.

Sources: [2][3]

Best fit

Fits RabbitMQ-backed event-driven services and workers

Lapin is suitable for background workers, event distribution, queue-based asynchronous processing, and service-to-service messaging where AMQP 0-9-1 is the required transport.

Sources: [2]

Before adoption

Check Rust 1.88+ and test recovery under broker or network failure

Lapin 4.12.0 requires Rust 1.88. The 4.x line integrates automatic recovery into ConnectionProperties, while 4.12.0 fixes a hang when a server closes during connection.open, so broker restart and network-failure testing remain important.

Sources: [3][4]

Official sources

  1. [1]amqp-rs/lapin — GitHub repository(2026-10-06)
  2. [2]Lapin 4.12.0 — README(2026-10-06)
  3. [3]Lapin 4.12.0 — Cargo.toml(2026-10-06)
  4. [4]Lapin 4.12.0 — CHANGELOG(2026-10-06)
Supplemental curator note

Lapin is focused on async AMQP 0-9-1 access to RabbitMQ. Runtime and TLS backends are selectable, but production deployments should explicitly test recovery, publisher confirms, acknowledgements, and broker/network failure paths.

Try it in 3 steps

  1. 1

    Clone the reviewed Lapin release

    Clone Lapin 4.12.0. Rust 1.88 or newer is required.

    git clone --depth 1 --branch v4.12.0 https://github.com/amqp-rs/lapin.git && cd lapin
  2. 2

    Set the RabbitMQ connection address

    Set the same default AMQP address used by the official example. RabbitMQ must be running at this address.

    export AMQP_ADDR=amqp://127.0.0.1:5672/%2f
  3. 3

    Run the Tokio example connection test

    Run the connection test embedded in the official Tokio example to exercise queue declaration, publish, consume, acknowledgement, and connection close.

    cargo test --example tokio --features tokio connection -- --nocapture
Check the official README

Growth

Growth trends · Last 30 days

1,237 Stars

Trend data is still being collected.

Built with

Categories and tags

GitHub data

GitHub dataView detailed GitHub data

GitHub Topics

  • amqp
  • amqp-client
  • amqp0-9-1
  • async
  • hacktoberfest
  • messaging
  • rust
Stars
1,237
Forks
122
Watchers
8
Open issues
2
Contributors
43
Owner type
Organization
Primary language
Rust
License
MIT
Repository last updated
Sep 18, 2026
Write a related article

Share a guide or use case for this OSS in Markdown. Articles are published after administrator approval.

Report incorrect information

Tell us if any listing information is incorrect or outdated.

After reading this page, do you know what to do next?