SquidStd.Messaging.Abstractions
0.7.0
dotnet add package SquidStd.Messaging.Abstractions --version 0.7.0
NuGet\Install-Package SquidStd.Messaging.Abstractions -Version 0.7.0
<PackageReference Include="SquidStd.Messaging.Abstractions" Version="0.7.0" />
<PackageVersion Include="SquidStd.Messaging.Abstractions" Version="0.7.0" />
<PackageReference Include="SquidStd.Messaging.Abstractions" />
paket add SquidStd.Messaging.Abstractions --version 0.7.0
#r "nuget: SquidStd.Messaging.Abstractions, 0.7.0"
#:package SquidStd.Messaging.Abstractions@0.7.0
#addin nuget:?package=SquidStd.Messaging.Abstractions&version=0.7.0
#tool nuget:?package=SquidStd.Messaging.Abstractions&version=0.7.0
<p align="center"> <img src="https://raw.githubusercontent.com/tgiachi/squid-std/main/assets/icon.png" alt="SquidStd" width="120" height="120" /> </p>
<h1 align="center">SquidStd.Messaging.Abstractions</h1>
<p align="center"> <a href="https://www.nuget.org/packages/SquidStd.Messaging.Abstractions/"><img src="https://img.shields.io/nuget/v/SquidStd.Messaging.Abstractions.svg" alt="NuGet" /></a> <img src="https://img.shields.io/nuget/dt/SquidStd.Messaging.Abstractions.svg" alt="Downloads" /> <a href="https://tgiachi.github.io/squid-std/articles/messaging-abstractions.html"><img src="https://img.shields.io/badge/docs-DocFX-1390A3.svg" alt="docs" /></a> <img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license" /> </p>
Transport-agnostic messaging contracts for SquidStd. It defines the typed queue facade
(IMessageQueue), the low-level provider/serializer/metrics contracts, the message-listener interfaces,
and the shared MessageQueue facade plus default serializer and metrics. Pick a transport
implementation (in-memory or RabbitMQ) from a companion package.
Install
dotnet add package SquidStd.Messaging.Abstractions
Features
IMessageQueue— typedPublishAsync<T>/Subscribe<T>facade over named queues.IQueueProvider— the raw transport contract implemented per backend.IMessageSerializer(+ defaultJsonMessageSerializer) — payload (de)serialization.IQueueMessageListener<T>/IQueueMessageListenerAsync<T>— sync/async subscribers.IMessagingMetrics(+MessagingMetricsProvider,NoOpMessagingMetrics) — delivery metrics.MessagingOptionsandMessagingConnectionString— configuration and connection parsing.
Usage
using SquidStd.Messaging.Abstractions.Interfaces;
public sealed class OrderCreated { public int Id { get; init; } }
public sealed class OrderListener : IQueueMessageListener<OrderCreated>
{
public void Handle(OrderCreated message) { /* ... */ }
}
// Resolve IMessageQueue from a transport package (in-memory or RabbitMQ).
public async Task PublishAsync(IMessageQueue queue)
=> await queue.PublishAsync("orders", new OrderCreated { Id = 1 });
Key types
| Type | Purpose |
|---|---|
IMessageQueue |
Typed publish/subscribe facade. |
IQueueProvider |
Transport contract (per backend). |
IMessageSerializer |
Payload (de)serialization. |
IQueueMessageListener<T> |
Subscriber callbacks. |
IMessagingMetrics |
Delivery metrics sink. |
MessagingOptions |
Delivery attempts, retry delay, and dead-letter-queue suffix. |
License
MIT — part of SquidStd.
| 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
- SquidStd.Abstractions (>= 0.7.0)
- SquidStd.Core (>= 0.7.0)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on SquidStd.Messaging.Abstractions:
| Package | Downloads |
|---|---|
|
SquidStd.Messaging.RabbitMq
Package Description |
|
|
SquidStd.Messaging
Package Description |
|
|
SquidStd.Workers.Manager
Package Description |
|
|
SquidStd.Workers
Package Description |
|
|
SquidStd.Mail.Queue
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.