{"id":13431447,"url":"https://github.com/rebus-org/Rebus","last_synced_at":"2025-03-16T11:31:43.171Z","repository":{"id":1696603,"uuid":"2425099","full_name":"rebus-org/Rebus","owner":"rebus-org","description":":bus: Simple and lean service bus implementation for .NET","archived":false,"fork":false,"pushed_at":"2025-02-28T11:43:13.000Z","size":472221,"stargazers_count":2376,"open_issues_count":13,"forks_count":361,"subscribers_count":106,"default_branch":"master","last_synced_at":"2025-03-13T15:09:18.966Z","etag":null,"topics":["c-sharp","message-bus","message-queue","messaging","messaging-library","microservices","rebus","service-bus"],"latest_commit_sha":null,"homepage":"https://mookid.dk/category/rebus","language":"C#","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/rebus-org.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"custom":["https://pro.rebus.fm"]}},"created_at":"2011-09-20T20:06:26.000Z","updated_at":"2025-03-13T05:26:21.000Z","dependencies_parsed_at":"2023-02-18T05:15:37.436Z","dependency_job_id":"f500d663-b0d3-4c63-a9ce-88976ba8f1ef","html_url":"https://github.com/rebus-org/Rebus","commit_stats":null,"previous_names":[],"tags_count":450,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rebus-org%2FRebus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rebus-org%2FRebus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rebus-org%2FRebus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rebus-org%2FRebus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rebus-org","download_url":"https://codeload.github.com/rebus-org/Rebus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243863095,"owners_count":20360264,"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":["c-sharp","message-bus","message-queue","messaging","messaging-library","microservices","rebus","service-bus"],"created_at":"2024-07-31T02:01:03.152Z","updated_at":"2025-03-16T11:31:41.801Z","avatar_url":"https://github.com/rebus-org.png","language":"C#","readme":"# Rebus\n\n![](https://raw.githubusercontent.com/rebus-org/Rebus/master/artwork/little_rebusbus2_copy-200x200.png)\n\nLatest stable: [![NuGet stable](https://img.shields.io/nuget/v/Rebus.svg?style=flat-square)](https://www.nuget.org/packages/Rebus)\n\nCurrent prerelease: [![NuGet pre](https://img.shields.io/nuget/vpre/Rebus.svg?style=flat-square)](https://www.nuget.org/packages/Rebus)\n\nTests: [![Build status](https://ci.appveyor.com/api/projects/status/gk13466i0o57o4rp?svg=true)](https://ci.appveyor.com/project/mookid8000/rebus)\n\nThis repository contains Rebus \"core\". You may also be interested in one of [the many integration libraries](https://github.com/rebus-org?utf8=%E2%9C%93\u0026q=rebus.). \n\nFor information about the commercial add-on (support, tooling, etc.) to Rebus, please visit [Rebus FM's page about Rebus Pro](https://rebus.fm/rebus-pro/).\n\n\nWhat?\n====\n\nRebus is a lean service bus implementation for .NET. It is what ThoughtWorks in 2010 called a \n[\"message bus without smarts\"](https://www.thoughtworks.com/radar/tools/message-buses-without-smarts) - a library \nthat works well as the \"dumb pipes\" when you need asynchronous communication in your microservices that follow\nthe [\"smart endpoints, dumb pipes\"](https://martinfowler.com/articles/microservices.html#SmartEndpointsAndDumbPipes) \nprinciple.\n\nRebus aims to have\n\n* a simple and intuitive configuration story\n* a few well-selected options\n* no doodleware\n* as few dependencies as possible (currently only [JSON.NET][JSON])\n* a broad reach (targets .NET Standard 2.0, i.e. .NET Framework 4.6.1, .NET Core 2, and .NET 5 and onwards)\n* integration with external dependencies via small, dedicated projects\n* the best error messages in the world\n* a frictionless getting-up-and-running-experience\n\nand in doing this, Rebus should try to align itself with common, proven asynchronous messaging patterns.\n\nOh, and Rebus is FREE as in beer 🍺 and speech 💬, and it will stay that way forever.\n\nMore information\n====\n\nIf you want to read more, check out [the official Rebus documentation wiki][REBUS_WIKI] or check out [my blog][REBUS_PAGE_ON_BLOG].\n\nYou can also follow me on Twitter: [@mookid8000][MOOKID8000_ON_TWITTER]\n\nGetting started\n====\n\nRebus is a simple .NET library, and everything revolves around the `RebusBus` class. One way to get Rebus\nup and running, is to manually go\n\n```csharp\nvar bus = new RebusBus(...);\nbus.Start(1); //\u003c 1 worker thread\n\n// use the bus for the duration of the application lifetime\n\n// remember to dispose the bus when your application exits\nbus.Dispose();\n```\n\nwhere `...` is a bunch of dependencies that vary depending on how you want to send/receive messages etc.\nAnother way is to use the configuration API, in which case you would go\n\n\n```csharp\nvar someContainerAdapter = new BuiltinHandlerActivator();\n```\n\nfor the built-in container adapter, or\n\n```csharp\nvar someContainerAdapter = new AdapterForMyFavoriteIocContainer(myFavoriteIocContainer);\n```\n\nto integrate with your favorite IoC container, and then\n\n```csharp\nConfigure.With(someContainerAdapter)\n    .Logging(l =\u003e l.Serilog())\n    .Transport(t =\u003e t.UseMsmq(\"myInputQueue\"))\n    .Routing(r =\u003e r.TypeBased().MapAssemblyOf\u003cSomeMessageType\u003e(\"anotherInputQueue\"))\n    .Start();\n\n// have IBus injected in application services for the duration of the application lifetime    \n\n// let the container dispose the bus when your application exits\nmyFavoriteIocContainer.Dispose();\n```\n\nwhich will stuff the resulting `IBus` in the container as a singleton and use the container to look up\nmessage handlers. Check out the Configuration section on [the official Rebus documentation wiki][REBUS_WIKI] for\nmore information on how to do this.\n\nIf you want to be more specific about what types you map in an assembly, such as if the assembly is shared with other code you can map all the types under a specific namespace like this:\n\n```csharp\nConfigure.With(someContainerAdapter)\n    .(...)\n    .Routing(r =\u003e r.TypeBased().MapAssemblyNamespaceOf\u003cSomeMessageType\u003e(\"namespaceInputQueue\"))\n    .(...);\n\n// have IBus injected in application services for the duration of the application lifetime    \n\n// let the container dispose the bus when your application exits\nmyFavoriteIocContainer.Dispose();\n```\n\n\nLicense\n====\n\nRebus is licensed under [The MIT License (MIT)][MITLICENSE]. Basically, this license grants you the right to use\nRebus in any way you see fit. See [LICENSE.md](/LICENSE.md) for more info.\n\nThe purpose of the license is to make it easy for everyone to use Rebus and its accompanying integration\nlibraries. If that is not the case, please get in touch with [hello@rebus.fm](mailto:hello@rebus.fm)\nand then we will work something out.\n\n\n[MITLICENSE]: https://raw.githubusercontent.com/rebus-org/Rebus/batches/LICENSE.md\n[MOOKID8000_ON_TWITTER]: https://twitter.com/mookid8000\n[REBUS_WIKI]: https://github.com/rebus-org/Rebus/wiki\n[REBUS_PAGE_ON_BLOG]: http://mookid.dk/oncode/rebus\n\n[JSON]: https://github.com/JamesNK/Newtonsoft.Json\n\n[//]: [![downloads](http://img.shields.io/nuget/dt/Rebus.svg?style=flat-square)](https://www.nuget.org/packages/Rebus)\n","funding_links":["https://pro.rebus.fm"],"categories":["Frameworks, Libraries and Tools","C\\#","C# #","框架, 库和工具","Event/Message \u0026 Service Bus","C#","Queue","队列","Architectural Patterns","Tools and Libraries"],"sub_categories":["Queue and Messaging","消息队列","GUI - other","Microservices","Messaging"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frebus-org%2FRebus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frebus-org%2FRebus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frebus-org%2FRebus/lists"}