amqp091-go
by
rabbitmq

Description: An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp`

View on GitHub ↗

Summary Information

Updated 7 minutes ago
Added to GitGenius on February 18th, 2025
Created on June 9th, 2021
Open Issues & Pull Requests: 17 (+0)
Number of forks: 168
Total Stargazers: 2,020 (+0)
Total Subscribers: 29 (+0)

Issue Activity (beta)

Issue API unavailable.

Repository Insights (GitGenius)

Median issue/PR response: 3.1 days
Mean response time: 217.9 days
90th percentile: 752.3 days
Tracked items: 25

Most active contributors

Detailed Description

The amqp091-go repository is an AMQP 0-9-1 client library for Go maintained by the RabbitMQ core team. It represents a continuation and modernization of the original streadway/amqp client, which was developed by Sean Treadway over a decade ago. The library provides a functional interface that closely represents the AMQP 0-9-1 protocol model as implemented by RabbitMQ, enabling Go developers to interact with RabbitMQ message brokers for asynchronous messaging, publish-subscribe patterns, and queue management.

The project maintains compatibility with the mature codebase it inherited while introducing deliberate improvements and modernizations. The package uses a different name than the original streadway/amqp to reflect its new maintainership, though the README notes that developers migrating from the original can use import aliases to minimize code changes. The library retains key API elements from its predecessor but explicitly reserves the right to make reasonable breaking changes to the public API as suggested by the community, recognizing that good client APIs evolve over time rather than remaining frozen.

From a maintenance perspective, the repository shows active engagement from the RabbitMQ team. GitGenius tracking data reveals that lukebakken has been the most active contributor with 31 recorded events, followed by Zerpet with 22 events, indicating consistent stewardship. The median issue and pull request response latency across tracked items is approximately 74 hours, demonstrating reasonable responsiveness to community contributions. Bug reports represent the most common issue type with five tracked instances, followed by enhancement requests with two, and one good first issue designation to encourage new contributors.

The library supports the two most recent Go release series and is compatible with RabbitMQ versions starting from 2.0, though it is primarily tested against currently supported RabbitMQ release series. The project explicitly defines its scope by stating what it will not support, including AMQP protocol negotiation for forward or backward compatibility, AMQP 1.0 support, and certain authentication mechanisms beyond PLAIN and EXTERNAL. This focused approach allows the library to maintain a clean implementation of the 0-9-1 specification without attempting to bridge incompatible protocol versions.

The repository includes practical examples in its _examples subdirectory demonstrating simple producer and consumer implementations. Documentation is provided through Godoc API references and RabbitMQ tutorials written in Go. The project welcomes pull requests with the requirement that changes include tests or examples and represent coherent, well-reasoned modifications. The codebase is licensed under the BSD 2-clause license, matching the original project's licensing terms. The repository's classification across multiple domains including message brokering, middleware, asynchronous messaging, and protocol implementation reflects its central role in Go-based RabbitMQ integrations.

amqp091-go
by
rabbitmqrabbitmq/amqp091-go

Repository Details

Fetching additional details & charts...