Runax.Messaging.Abstractions
2.0.0
dotnet add package Runax.Messaging.Abstractions --version 2.0.0
NuGet\Install-Package Runax.Messaging.Abstractions -Version 2.0.0
<PackageReference Include="Runax.Messaging.Abstractions" Version="2.0.0" />
<PackageVersion Include="Runax.Messaging.Abstractions" Version="2.0.0" />
<PackageReference Include="Runax.Messaging.Abstractions" />
paket add Runax.Messaging.Abstractions --version 2.0.0
#r "nuget: Runax.Messaging.Abstractions, 2.0.0"
#:package Runax.Messaging.Abstractions@2.0.0
#addin nuget:?package=Runax.Messaging.Abstractions&version=2.0.0
#tool nuget:?package=Runax.Messaging.Abstractions&version=2.0.0
Runax.Messaging.Abstractions
Core publish/subscribe contracts for Runax.Messaging. This package has almost no dependencies — reference it from application code that only needs to publish, and from transport packages that implement the SPI.
Install
dotnet add package Runax.Messaging.Abstractions
What's inside
| Type | Role |
|---|---|
IBus |
The single application handle to messaging: publishes a strongly-typed message (or a batch via PublishBatchAsync) to a topic on the bus's transport, optionally with headers. Inject unkeyed for the default bus, keyed by name for a named bus. |
IBusProvider |
Resolves buses dynamically (GetBus("<name>")) and enumerates them (Buses) for diagnostics and admin surfaces. |
BusMode / BusNames |
A bus's declared mode (PublishAndConsume / PublishOnly / ConsumeOnly) and the well-known default bus name. |
TransportConfig / TransportContext |
Transport SPI: a transport package derives one config type carrying its broker settings and the CreateTransport factory; the context hands it the bus name, mode, and service provider. |
IMessagingTransport |
Provider SPI. Each transport implements broker-specific publish (single and batch) / subscribe and exposes a SystemName telemetry tag. |
MessageContext |
A received message: topic, raw JSON body, headers, and a Deserialize<T>() helper. |
MessageDisposition |
The verdict a transport applies after dispatch: Acknowledge, Requeue, or DeadLetter. |
PoisonMessageException |
Thrown by a consumer to skip retries and dead-letter the message immediately. |
MessagingConfigurator |
The AddRunaxMessaging surface; buses attach via the AddBus extensions in the Runax.Messaging package. |
Usage
Depend on IBus wherever you publish:
using Runax.Messaging.Abstractions;
public sealed class Checkout(IBus bus)
{
public ValueTask PlaceOrderAsync(Order order) =>
bus.PublishAsync("orders.placed", order);
}
An unkeyed IBus resolves the application's default bus; a named bus resolves via keyed DI
([FromKeyedServices("audit")] IBus) or IBusProvider.GetBus("audit").
The implementation, transports, and hosting live in
Runax.Messaging and the
transport packages.
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. 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. |
-
net10.0
NuGet packages (11)
Showing the top 5 NuGet packages that depend on Runax.Messaging.Abstractions:
| Package | Downloads |
|---|---|
|
Runax.Messaging
Core implementation for Runax.Messaging: DI wiring, serialization, hosted consumers, and an in-memory transport. |
|
|
Runax.Messaging.Transports.Aws.Sns
Amazon SNS transport for Runax.Messaging. Publishes to SNS and consumes from a subscribed SQS queue (SNS→SQS). |
|
|
Runax.Messaging.Transports.Aws.Sqs
Amazon SQS transport for Runax.Messaging. |
|
|
Runax.Messaging.Transports.Azure.EventHubs
Azure Event Hubs transport for Runax.Messaging. |
|
|
Runax.Messaging.Transports.Redis
Redis Streams transport for Runax.Messaging. Works with Redis and Valkey. |
GitHub repositories
This package is not used by any popular GitHub repositories.