{"id":21296865,"url":"https://github.com/reddec/amqp-utils","last_synced_at":"2026-05-19T00:38:15.465Z","repository":{"id":81702432,"uuid":"76747908","full_name":"reddec/amqp-utils","owner":"reddec","description":"Toolbox on Golang to manipulate messages from amqp broker","archived":false,"fork":false,"pushed_at":"2017-07-10T17:55:43.000Z","size":35,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-09T00:06:38.901Z","etag":null,"topics":["amqp-broker","amqp-http","amqp-utils","golang"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/reddec.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2016-12-17T21:34:23.000Z","updated_at":"2016-12-17T21:35:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"46783419-3df7-4c84-8244-89841ae1455a","html_url":"https://github.com/reddec/amqp-utils","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Famqp-utils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Famqp-utils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Famqp-utils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/reddec%2Famqp-utils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/reddec","download_url":"https://codeload.github.com/reddec/amqp-utils/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243764868,"owners_count":20344496,"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-broker","amqp-http","amqp-utils","golang"],"created_at":"2024-11-21T14:30:14.437Z","updated_at":"2026-05-19T00:38:15.419Z","avatar_url":"https://github.com/reddec.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# amqp-utils\nToolbox on Golang to manipulate messages from amqp broker\n\n## amqp-http-input\n\nListen HTTP endpoint and post message to AMQP broker. Message must be as described \nbelow. \n\nAuth included =)\n\n## amqp-http-hook\n\nGets message from AMQP broker and post to remote HTTP endpoint. If no `--template` \nprovided raw JSON view of message is used.\n\nRetries/multiple URLs/auth included =)\n\n## amqp-http-csv\n\nSame as amqp-http-input but puts message into CSV (I don't remember why I did it).\n\nAuth included =)\n\n## amqp-cgi\n\n\nRuns provided executable and puts into stdin content of message. Headers are putted\ninto environment variables (as in message described: e.x. `ContentType`).\n\nAdditional headers from message are putted with prefix `AMQP_`. For example: `AMQP_MY_HEADER`\n\nStdout sended as message to `ReplyTo` queue (if provided) with `CorrelationId` = `MessageId`\n\nRetries included =)\n\n## amqp-push\n\nVery simple utility that writes lines from stdin as messages to amqp broker or whole\ndata as one packet if `--single` flag provided\n\n# Install \n\nUse [binary builds](https://github.com/reddec/amqp-utils/releases) or build \nby yourself:\n\nAssume that you defined `GOPATH/bin` into `PATH`\n\n    go install github.com/reddec/amqp-utils/cmd/...\n\n\nAlso you may setup a service like this:\n\n\n    [Unit]\n\tDescription=AMQP utils - pull messages from broker and push to HTTP endpoint\n\t\n\t[Service]\n\tExecStart=/usr/local/bin/amqp-http-hook\n\tRestartSec=5s\n\t\n\t[Install]\n\tWantedBy=multi-user.target\n\n\nJust replace `Description` and `ExecStart` to description of service and absolute\npath to required executable.\n\nInstall service by those command: \n    \n\tsystemctl enable /path/to/file.service\n\t\nAnd start by\n\n\tsystemctl start file.service\n\n\n# HTTP-HOOK\n\nAt fact, this is simple web hook, backed by AMQP broker\n\n## Template\n\nYou may send message no in JSON by using Golang template: flag `--template \u003cfilename\u003e`\n\nPossible values in template is same as message fields\n\n# Message\n\nI am too lazy to describe all fields, so \n\n```go\ntype Message struct {\n\tHeaders map[string]interface{} `json:\"headers,omitempty\"`\n\tBody    string                 `json:\"body\"`\n\n\tContentType     string    `json:\"content_type,omitempty\"`     // MIME content type\n\tContentEncoding string    `json:\"content_encoding,omitempty\"` // MIME content encoding\n\tDeliveryMode    uint8     `json:\"delivery_mode,omitempty\"`    // queue implemention use - non-persistent (1) or persistent (2)\n\tPriority        uint8     `json:\"priority,omitempty\"`         // queue implementation use - 0 to 9\n\tCorrelationId   string    `json:\"correlation_id,omitempty\"`   // application use - correlation identifier\n\tReplyTo         string    `json:\"reply_to,omitempty\"`         // application use - address to to reply to (ex: RPC)\n\tExpiration      string    `json:\"expiration,omitempty\"`       // implementation use - message expiration spec\n\tMessageId       string    `json:\"message_id,omitempty\"`       // application use - message identifier\n\tTimestamp       time.Time `json:\"timestamp,omitempty\"`        // application use - message timestamp\n\tType            string    `json:\"type,omitempty\"`             // application use - message type name\n\tExchange        string    `json:\"exchange,omitempty\"`         // basic.publish exhange\n\tRoutingKey      string    `json:\"routing_key,omitempty\"`      // basic.publish routing key\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddec%2Famqp-utils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Freddec%2Famqp-utils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Freddec%2Famqp-utils/lists"}