{"id":16316793,"url":"https://github.com/makasim/amqpextra","last_synced_at":"2025-03-16T14:30:53.725Z","repository":{"id":48798226,"uuid":"219835891","full_name":"makasim/amqpextra","owner":"makasim","description":"Golang AMQP reliable connection, publisher, consumer.","archived":false,"fork":false,"pushed_at":"2024-01-31T10:40:38.000Z","size":306,"stargazers_count":74,"open_issues_count":5,"forks_count":18,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-02-27T10:35:31.397Z","etag":null,"topics":["amqp","consumer","go","golang","hacktoberfest","publisher","rabbitmq","streadway"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/makasim.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"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}},"created_at":"2019-11-05T19:39:33.000Z","updated_at":"2025-01-08T06:59:53.000Z","dependencies_parsed_at":"2024-10-27T10:54:07.582Z","dependency_job_id":"b28e85fb-6b3e-4e8b-8cc3-1376b544ff37","html_url":"https://github.com/makasim/amqpextra","commit_stats":{"total_commits":122,"total_committers":6,"mean_commits":"20.333333333333332","dds":"0.16393442622950816","last_synced_commit":"e05133a03cfac19fe5bb849de98e5da9381832c4"},"previous_names":[],"tags_count":58,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makasim%2Famqpextra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makasim%2Famqpextra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makasim%2Famqpextra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/makasim%2Famqpextra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/makasim","download_url":"https://codeload.github.com/makasim/amqpextra/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243818195,"owners_count":20352629,"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":["amqp","consumer","go","golang","hacktoberfest","publisher","rabbitmq","streadway"],"created_at":"2024-10-10T22:05:38.688Z","updated_at":"2025-03-16T14:30:53.337Z","avatar_url":"https://github.com/makasim.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Extra features for streadway/amqp package. \n\u003ca href=\"https://travis-ci.org/makasim/amqpextra\"\u003e\u003cimg src=\"https://travis-ci.org/makasim/amqpextra.png?branch=master\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\n[Documentation](https://pkg.go.dev/github.com/makasim/amqpextra#section-documentation)\n\n## Dialer.\n\nProvides:\n* Auto reconnect.\n* Context aware.\n* Configured by WithXXX options.\n* Dial multiple servers. \n* Notifies ready\\unready\\closed states.\n\nExamples:\n* [Dialer.ConnectionCh](https://pkg.go.dev/github.com/makasim/amqpextra#example-Dialer.ConnectionCh)\n* [Dialer.Consumer](https://pkg.go.dev/github.com/makasim/amqpextra#example-Dialer.Consumer)\n* [Dialer.Publisher](https://pkg.go.dev/github.com/makasim/amqpextra#example-Dialer.Publisher)\n\n## Consumer.\n\nProvides:\n* Auto reconnect.\n* Context aware.\n* Configured by WithXXX options.\n* Consumer can process messages in parallel.\n* Consumers in-process auto-scaling and backpressure.\n* Adds message context.\n* Detects queue deletion and reconnect.\n* Notifies ready\\unready\\closed states.\n\nExamples:\n* [NewConsumer](https://pkg.go.dev/github.com/makasim/amqpextra#example-NewConsumer)\n* [Wrap](https://pkg.go.dev/github.com/makasim/amqpextra@v0.16.1/consumer#example-Wrap)\n\n## Publisher.\n\nProvides:\n* Auto reconnect.\n* Context aware.\n* Configured by WithXXX options.\n* Notifies ready\\unready\\closed states.\n* Publish could wait till connection ready.\n* Adds message context.\n* Publish a message struct (define only what you need). \n* Supports [flow control](https://www.rabbitmq.com/flow-control.html). \n\nExamples:\n* [NewPublisher](https://pkg.go.dev/github.com/makasim/amqpextra#example-NewPublisher)\n\n#### Consumer middlewares\n\nThe consumer could chain middlewares for a preprocessing received message.\n\nHere's some built-in middlewares:\n* [HasCorrelationID](consumer/middleware/has_correlation_id.go) - Nack message if has no correlation id\n* [HasReplyTo](consumer/middleware/has_reply_to.go) - Nack message if has no reply to.\n* [Logger](consumer/middleware/logger.go) - Context with logger.\n* [Recover](consumer/middleware/recover.go) - Recover worker from panic, nack message.\n* [Expire](consumer/middleware/expire.go) - Convert Message expiration to context with timeout.\n* [AckNack](consumer/middleware/ack_nack.go) - Return middleware.Ack to ack message.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakasim%2Famqpextra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmakasim%2Famqpextra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmakasim%2Famqpextra/lists"}