.N .NET Landscape

EasyNetQ

Messaging & Event Streaming
github.com/EasyNetQ/EasyNetQ

An easy to use .NET API for RabbitMQ

dotnetdotnet-coremessagingrabbitmq
GitHub stars
3,062
Forks
747
Open issues
2
NuGet downloads
48,599,513
latest 8.1.11
License
MIT
Language
C#
Last push
4 days ago
20 Oct 2026
Created
21 Apr 2011

Build status

NuGet Status Nuget Status Nuget Status

Activity Activity Activity

EasyNetQ Logo

A Nice .NET API for RabbitMQ

Initial development was sponsored by travel industry experts 15below

Goals:

Important Update

With the release of EasyNetQ v8, the method for connecting to a RabbitMQ broker has changed. The rest of the API remains unchanged.

To make working with RabbitMQ on .NET as easy as possible.

To connect to a RabbitMQ broker in v7...

    var bus = RabbitHutch.CreateBus("host=localhost");

To connect to a RabbitMQ broker in v8...

    var serviceCollection = new ServiceCollection();
    serviceCollection.AddEasyNetQ("host=localhost").UseSystemTextJson();

    using var provider = serviceCollection.BuildServiceProvider();
    var bus = provider.GetRequiredService<IBus>();

To publish a message...

    await bus.PubSub.PublishAsync(message);

To publish a message with a 5s delay...

    await bus.Scheduler.FuturePublishAsync(message, TimeSpan.FromSeconds(5));

To subscribe to a message...

    await bus.PubSub.SubscribeAsync<MyMessage>(
        "my_subscription_id", msg => Console.WriteLine(msg.Text)
    );

Remote procedure call...

    var request = new TestRequestMessage {Text = "Hello from the client! "};
    await bus.Rpc.RequestAsync<TestRequestMessage, TestResponseMessage>(request);

RPC server...

    await bus.Rpc.RespondAsync<TestRequestMessage, TestResponseMessage>(request =>
        new TestResponseMessage{ Text = request.Text + " all done!" }
    );

Getting started

Just open EasyNetQ.sln in your preferred IDE or code editor and build. All the required dependencies for the solution file to build the software are included.

Contributors

Thanks to all the people who already contributed!