{"id":25961716,"url":"https://github.com/ttab/rabbiteer","last_synced_at":"2026-05-14T07:31:33.825Z","repository":{"id":12986119,"uuid":"15664987","full_name":"ttab/rabbiteer","owner":"ttab","description":".NET service + client to publish/consume messages to RabbitMQ","archived":false,"fork":false,"pushed_at":"2015-01-13T05:08:15.000Z","size":1588,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":27,"default_branch":"master","last_synced_at":"2025-03-04T19:44:03.875Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/ttab.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}},"created_at":"2014-01-06T04:17:30.000Z","updated_at":"2015-01-13T05:08:15.000Z","dependencies_parsed_at":"2022-08-31T05:12:12.143Z","dependency_job_id":null,"html_url":"https://github.com/ttab/rabbiteer","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ttab/rabbiteer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Frabbiteer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Frabbiteer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Frabbiteer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Frabbiteer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttab","download_url":"https://codeload.github.com/ttab/rabbiteer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttab%2Frabbiteer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33015153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":"2025-03-04T19:41:11.677Z","updated_at":"2026-05-14T07:31:33.809Z","avatar_url":"https://github.com/ttab.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"Rabbiteer\n=========\n\n.NET service + client to publish/consume messages to RabbitMQ\n\n## Service\n\nThe service runs as a standard windows service. It maintains a persistent connection to RabbitMQ. The client issues commands to the server through standard windows RPC-mechanism. The server writes log messages to the windows event log `Application` with event source set to `Rabbiteer`.\n\nThe server has an internal state in memory which is lost when restarting (binds are not persistent).\n\n## Client\n\nClient is a CLI tool .exe usable from powershell or cmd.\n\n### Bind command\n\nThe bind command tells the server to bind a (named) queue to a certain exchange with a specific routing key. Messages published to this exchange will be written to the provided outdir.\n\n    rabbiteer -b -q delivery-automate -e delivery -r out.# -o c:\\delivery\\new\n    \nThis binds the queue `delivery-automate` to the exchange `delivery` using routing key `out.#` and writes any messages received to `c:\\delivery\\new`.\n\n#### File naming\n\nMessages received are written as individual files. Each file will be named `yyyyMMdd-HHmmss`.`[extension for mime type]` unless an amqp message header `fileName` is provided, in which case this is used instead. When using `fileName` files named the same will overwrite each other.\n\nThe mime type is mapped according to a big internal list of mime type to file name extension mappings.\n\n#### Repeatable\n\nThe bind command is repeatable. If the exact same parameters are reissued, no additional queue or listener will be set up. Rabbiteer service has a state only in memory and restarts resets the entire service. The intention is to reissue the bind commands on scheduled basis.\n\n### Publish command\n\nThe publish commands tells the server process to send a file to a certain exchange and routing key and to move the file when it has been sent.\n\n    rabbiteer -p -e ttnitf -r ttnitf -f myFile.ttt -d c:\\done\n    \nThis publishes the file `myFile.ttt` to the exchange `ttnitf` with the routing key `ttnitf` and moves the file to `c:\\done` when finished.\n\nNote that command line exe does not interact the file at all (it does check whether it exists), instead it instructs the service to do so. The actual file reading and moving is done by the rabbiteer service, ensure correct file permissions for the service.\n\nThe publish command will always send the `fileName` header having the file name. The mime type is mapped using an internal filename extension to mime type table and defaults to `application/octet-stream` if nothing good is found.\n\nOnly if the file was successfully sent to RabbitMQ is the file moved to the done dir.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttab%2Frabbiteer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttab%2Frabbiteer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttab%2Frabbiteer/lists"}