{"id":13413382,"url":"https://github.com/rabbitmq/amqp091-go","last_synced_at":"2025-05-14T08:00:30.027Z","repository":{"id":37797482,"uuid":"375324499","full_name":"rabbitmq/amqp091-go","owner":"rabbitmq","description":"An AMQP 0-9-1 Go client maintained by the RabbitMQ team. Originally by @streadway: `streadway/amqp`","archived":false,"fork":false,"pushed_at":"2025-02-07T03:51:55.000Z","size":1234,"stargazers_count":1738,"open_issues_count":14,"forks_count":149,"subscribers_count":31,"default_branch":"main","last_synced_at":"2025-04-25T17:58:32.979Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rabbitmq.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-06-09T11:03:48.000Z","updated_at":"2025-04-24T12:52:54.000Z","dependencies_parsed_at":"2023-09-28T11:52:10.147Z","dependency_job_id":"f6d0966c-7a58-41b9-b495-02428c5682a9","html_url":"https://github.com/rabbitmq/amqp091-go","commit_stats":{"total_commits":622,"total_committers":123,"mean_commits":5.056910569105691,"dds":0.6463022508038585,"last_synced_commit":"afb3ba37b03ad54022016da34465d5938e057db8"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Famqp091-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Famqp091-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Famqp091-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rabbitmq%2Famqp091-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rabbitmq","download_url":"https://codeload.github.com/rabbitmq/amqp091-go/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252734567,"owners_count":21796040,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-30T20:01:39.042Z","updated_at":"2025-05-06T17:36:15.965Z","avatar_url":"https://github.com/rabbitmq.png","language":"Go","funding_links":[],"categories":["Messaging","开源类库","Middleware","Open source library","Uncategorized","Go","Relational Databases","消息"],"sub_categories":["消息队列","Message Queue","Uncategorized","检索及分析资料库","Search and Analytic Databases","Advanced Console UIs"],"readme":"# Go RabbitMQ Client Library\n\n[![amqp091-go](https://github.com/rabbitmq/amqp091-go/actions/workflows/tests.yml/badge.svg)](https://github.com/rabbitmq/amqp091-go/actions/workflows/tests.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/rabbitmq/amqp091-go.svg)](https://pkg.go.dev/github.com/rabbitmq/amqp091-go)\n[![Go Report Card](https://goreportcard.com/badge/github.com/rabbitmq/amqp091-go)](https://goreportcard.com/report/github.com/rabbitmq/amqp091-go)\n\nThis is a Go AMQP 0.9.1 client maintained by the [RabbitMQ core team](https://github.com/rabbitmq).\nIt was [originally developed by Sean Treadway](https://github.com/streadway/amqp).\n\n## Differences from streadway/amqp\n\nSome things are different compared to the original client,\nothers haven't changed.\n\n### Package Name\n\nThis library uses a different package name. If moving from `streadway/amqp`,\nusing an alias may reduce the number of changes needed:\n\n``` go\namqp \"github.com/rabbitmq/amqp091-go\"\n```\n\n### License\n\nThis client uses the same 2-clause BSD license as the original project.\n\n### Public API Evolution\n\n This client retains key API elements as practically possible.\n It is, however, open to reasonable breaking public API changes suggested by the community.\n We don't have the \"no breaking public API changes ever\" rule and fully recognize\n that a good client API evolves over time.\n\n\n## Project Maturity\n\nThis project is based on a mature Go client that's been around for over a decade.\n\n\n## Supported Go Versions\n\nThis client supports two most recent Go release series.\n\n\n## Supported RabbitMQ Versions\n\nThis project supports RabbitMQ versions starting with `2.0` but primarily tested\nagainst [currently supported RabbitMQ release series](https://www.rabbitmq.com/versions.html).\n\nSome features and behaviours may be server version-specific.\n\n## Goals\n\nProvide a functional interface that closely represents the AMQP 0.9.1 model\ntargeted to RabbitMQ as a server. This includes the minimum necessary to\ninteract the semantics of the protocol.\n\n## Non-goals\n\nThings not intended to be supported.\n\n  * Auto reconnect and re-synchronization of client and server topologies.\n    * Reconnection would require understanding the error paths when the\n      topology cannot be declared on reconnect.  This would require a new set\n      of types and code paths that are best suited at the call-site of this\n      package.  AMQP has a dynamic topology that needs all peers to agree. If\n      this doesn't happen, the behavior is undefined.  Instead of producing a\n      possible interface with undefined behavior, this package is designed to\n      be simple for the caller to implement the necessary connection-time\n      topology declaration so that reconnection is trivial and encapsulated in\n      the caller's application code.\n  * AMQP Protocol negotiation for forward or backward compatibility.\n    * 0.9.1 is stable and widely deployed.  AMQP 1.0 is a divergent\n      specification (a different protocol) and belongs to a different library.\n  * Anything other than PLAIN and EXTERNAL authentication mechanisms.\n    * Keeping the mechanisms interface modular makes it possible to extend\n      outside of this package.  If other mechanisms prove to be popular, then\n      we would accept patches to include them in this package.\n  * Support for [`basic.return` and `basic.ack` frame ordering](https://www.rabbitmq.com/confirms.html#when-publishes-are-confirmed).\n    This client uses Go channels for certain protocol events and ordering between\n    events sent to two different channels generally cannot be guaranteed.\n\n## Usage\n\nSee the [_examples](_examples) subdirectory for simple producers and consumers executables.\nIf you have a use-case in mind which isn't well-represented by the examples,\nplease file an issue.\n\n## Documentation\n\n * [Godoc API reference](http://godoc.org/github.com/rabbitmq/amqp091-go)\n * [RabbitMQ tutorials in Go](https://github.com/rabbitmq/rabbitmq-tutorials/tree/master/go)\n\n## Contributing\n\nPull requests are very much welcomed.  Create your pull request on a non-main\nbranch, make sure a test or example is included that covers your change, and\nyour commits represent coherent changes that include a reason for the change.\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for more information.\n\n## License\n\nBSD 2 clause, see LICENSE for more details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Famqp091-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frabbitmq%2Famqp091-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frabbitmq%2Famqp091-go/lists"}