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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Runax.Messaging.Abstractions" Version="2.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Runax.Messaging.Abstractions" Version="2.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Runax.Messaging.Abstractions" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Runax.Messaging.Abstractions --version 2.0.0
                    
#r "nuget: Runax.Messaging.Abstractions, 2.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Runax.Messaging.Abstractions@2.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Runax.Messaging.Abstractions&version=2.0.0
                    
Install as a Cake Addin
#tool nuget:?package=Runax.Messaging.Abstractions&version=2.0.0
                    
Install as a Cake Tool

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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
2.0.0 201 9/10/2026
1.0.0 231 7/26/2026