A Go client library for AMQP 0.9.1, maintained by the RabbitMQ team, enabling communication with RabbitMQ servers.
amqp091-go is a Go client library for the AMQP 0.9.1 protocol, specifically designed to work with RabbitMQ. It provides a functional interface that closely models the AMQP specification, allowing developers to build robust messaging applications in Go. Maintained by the RabbitMQ core team, it is based on a mature, widely used client and focuses on clarity and reliability without built-in auto-reconnection.
Go developers building messaging applications with RabbitMQ who need a reliable, protocol-compliant client library. It suits those who prefer explicit control over connection management and topology declaration.
Developers choose this library for its official maintenance by the RabbitMQ team, strict AMQP 0.9.1 compliance optimized for RabbitMQ, and a simple, functional API that avoids hidden complexity like auto-reconnection, leaving such logic to the application layer.
An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: streadway/amqp
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Maintained by the RabbitMQ core team, ensuring compatibility and updates aligned with RabbitMQ server developments, as stated in the README.
Provides a functional interface that closely models the AMQP 0.9.1 specification, enabling reliable messaging with RabbitMQ, as highlighted in the project goals.
Based on a decade-old client library, offering a stable and proven foundation for production use, with support for recent Go versions.
Avoids hidden complexities by leaving features like auto-reconnection to the application layer, promoting clarity, as per the non-goals section.
Lacks built-in auto-reconnect, forcing developers to implement error handling and topology re-declaration, which increases boilerplate and risk of oversight.
Only includes PLAIN and EXTERNAL authentication out-of-the-box; other mechanisms need custom extensions, as admitted in the non-goals.
Open to reasonable breaking changes based on community feedback, which could disrupt long-term projects despite aiming for evolution.
Does not ensure ordering between events like basic.return and basic.ack due to Go channel usage, affecting applications relying on strict sequencing.