BrilliantMessaging.Core
0.3.0
dotnet add package BrilliantMessaging.Core --version 0.3.0
NuGet\Install-Package BrilliantMessaging.Core -Version 0.3.0
<PackageReference Include="BrilliantMessaging.Core" Version="0.3.0" />
<PackageVersion Include="BrilliantMessaging.Core" Version="0.3.0" />
<PackageReference Include="BrilliantMessaging.Core" />
paket add BrilliantMessaging.Core --version 0.3.0
#r "nuget: BrilliantMessaging.Core, 0.3.0"
#:package BrilliantMessaging.Core@0.3.0
#addin nuget:?package=BrilliantMessaging.Core&version=0.3.0
#tool nuget:?package=BrilliantMessaging.Core&version=0.3.0
Brilliant Messaging
Explicit messaging. No magic.
Brilliant Messaging is a lightweight, CloudEvents-first messaging framework for modern cloud-native .NET applications. You declare your broker topology; Brilliant Messaging provisions exactly those resources — no surprise queues, no hidden dependencies. Messages travel as CloudEvents v1.0 in binary content mode over RabbitMQ (AMQP 0.9.1) or NATS JetStream, and the whole thing lives inside the .NET generic host.
Packages
| Package | What it gives you |
|---|---|
BrilliantMessaging.Abstractions |
The CloudEvents contracts: ICloudEvent and BaseCloudEvent. |
BrilliantMessaging.Core |
Publishing, consuming, message contracts, the topology model, and DI wiring. |
BrilliantMessaging.Transport.RabbitMq |
The RabbitMQ transport — exchanges, queues, bindings, publishers, and consumers. |
BrilliantMessaging.Transport.Nats |
The NATS JetStream transport — streams, durable consumers, subjects, publishers, and consumers. |
BrilliantMessaging.OpenTelemetry |
One-line registration of Brilliant Messaging tracing and metrics with the OpenTelemetry SDK. |
Choose the transport for your broker. Each transport transitively references the core contracts and runtime, so a single transport reference is all you need:
dotnet add package BrilliantMessaging.Transport.RabbitMq
dotnet add package BrilliantMessaging.Transport.Nats
RabbitMQ quick start
A complete publish-and-consume loop is four small steps.
For NATS JetStream setup and topology examples, see the NATS transport guide.
using BrilliantMessaging.Abstractions;
using BrilliantMessaging.Core.Messaging;
using BrilliantMessaging.Core.Messaging.Inbound;
using BrilliantMessaging.Core.Messaging.Outbound;
using BrilliantMessaging.Transport.RabbitMq;
using RabbitMQ.Client;
// 1. A message *is* a CloudEvent.
public sealed record OrderPlaced(string OrderId, decimal Total) : BaseCloudEvent;
// 2. Register Brilliant Messaging and declare exactly the broker resources you want.
builder.Services
.AddBrilliantMessaging()
.UseCloudEvents(options => options.Source = "/shop/orders")
.MapMessageContracts(contracts => contracts.Map<OrderPlaced>("shop.order.placed"))
.AddRabbitMqTopology(rabbit =>
{
rabbit.UseConnectionFactory(_ => new ConnectionFactory
{
Uri = new Uri("amqp://guest:guest@localhost:5672")
});
rabbit.Exchange("orders", ExchangeType.Topic);
rabbit.Queue("orders-processing");
rabbit.QueueBinding("orders", "orders-processing", "shop.order.*");
rabbit.Publish<OrderPlaced>(target =>
target.ToTopicExchange("orders", "shop.order.placed"));
rabbit.Consume("orders-processing", consumer =>
consumer.Handle<OrderPlaced, OrderPlacedHandler>());
});
// 3. Publish — inject IMessagePublisher and send.
public sealed class Checkout(IMessagePublisher publisher)
{
public Task PlaceAsync(OrderPlaced order, CancellationToken ct) =>
publisher.PublishMessageAsync(order, cancellationToken: ct);
}
// 4. Handle — resolved from a fresh DI scope per delivery.
public sealed class OrderPlacedHandler : IMessageHandler<OrderPlaced>
{
public Task HandleAsync(OrderPlaced message, IncomingMessageContext context, CancellationToken ct)
{
// ... process the order ...
return Task.CompletedTask;
}
}
AddBrilliantMessaging wires up the hosted services that provision your topology and drive the
consumers when your IHost starts — no extra StartAsync calls on your part.
Documentation
Concepts, outbound targets and routing keys, the customizable inbound pipeline, acknowledgements, publisher confirms, channel groups, reliability, and the observability guide all live in the full README on GitHub:
👉 https://github.com/Connectedness/BMF
License
Brilliant Messaging is licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- BrilliantMessaging.Abstractions (>= 0.3.0)
- Microsoft.Bcl.HashCode (>= 6.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.10)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.10)
- System.Collections.Immutable (>= 10.0.10)
- System.Diagnostics.DiagnosticSource (>= 10.0.10)
- System.Text.Json (>= 10.0.10)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on BrilliantMessaging.Core:
| Package | Downloads |
|---|---|
|
BrilliantMessaging.Transport.RabbitMq
Brilliant Messaging RabbitMQ transport integration. |
|
|
BrilliantMessaging.OpenTelemetry
Brilliant Messaging OpenTelemetry integration that wires activity sources and meters into a TracerProvider/MeterProvider. |
|
|
BrilliantMessaging.Transport.InMemory
Brilliant Messaging in-memory transport for tests, samples, and local development. |
|
|
BrilliantMessaging.Transport.Nats
Brilliant Messaging NATS JetStream transport. |
GitHub repositories
This package is not used by any popular GitHub repositories.