RockLib.Messaging
2.0.0
Prefix Reserved
See the version list below for details.
dotnet add package RockLib.Messaging --version 2.0.0
NuGet\Install-Package RockLib.Messaging -Version 2.0.0
<PackageReference Include="RockLib.Messaging" Version="2.0.0" />
paket add RockLib.Messaging --version 2.0.0
#r "nuget: RockLib.Messaging, 2.0.0"
// Install RockLib.Messaging as a Cake Addin #addin nuget:?package=RockLib.Messaging&version=2.0.0 // Install RockLib.Messaging as a Cake Tool #tool nuget:?package=RockLib.Messaging&version=2.0.0
A simple API for sending and receiving messages.
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. |
.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 | net451 is compatible. net452 was computed. net46 was computed. net461 was computed. net462 is compatible. 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. |
-
.NETFramework 4.5.1
- RockLib.Compression (>= 1.0.0)
- RockLib.Configuration (>= 2.3.1)
- RockLib.Configuration.ObjectFactory (>= 1.5.0)
-
.NETFramework 4.6.2
- RockLib.Compression (>= 1.0.0)
- RockLib.Configuration (>= 2.3.1)
- RockLib.Configuration.ObjectFactory (>= 1.5.0)
-
.NETStandard 2.0
- RockLib.Compression (>= 1.0.0)
- RockLib.Configuration (>= 2.3.1)
- RockLib.Configuration.ObjectFactory (>= 1.5.0)
NuGet packages (8)
Showing the top 5 NuGet packages that depend on RockLib.Messaging:
Package | Downloads |
---|---|
RockLib.Messaging.SQS
Implementation of RockLib.Messaging API that sends and receives messages using Amazon SQS. |
|
RockLib.Messaging.SNS
Implementation of RockLib.Messaging API that sends messages using Amazon SNS. |
|
RockLib.Messaging.Kafka
Implementation of RockLib.Messaging API that sends and receives messages using Kafka. |
|
RockLib.Messaging.CloudEvents
Send and receive messages using the CloudEvents format. |
|
RockLib.Messaging.NamedPipes
Implementation of RockLib.Messaging API that sends and receives messages to a local named pipe. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
4.0.1 | 4,551 | 7/16/2024 |
4.0.0 | 1,967 | 3/4/2024 |
4.0.0-alpha.1 | 154 | 2/28/2024 |
3.0.1 | 52,826 | 2/23/2023 |
3.0.0 | 69,733 | 2/25/2022 |
2.5.3 | 41,037 | 8/13/2021 |
2.5.2 | 97,128 | 5/7/2021 |
2.5.1 | 901 | 3/24/2021 |
2.5.0 | 3,389 | 3/23/2021 |
2.4.4 | 51,093 | 2/24/2021 |
2.4.3 | 75,071 | 8/14/2020 |
2.4.2 | 1,532 | 7/30/2020 |
2.4.1 | 733 | 7/29/2020 |
2.4.0 | 853 | 7/15/2020 |
2.3.1 | 1,976 | 6/22/2020 |
2.3.0 | 56,216 | 5/26/2020 |
2.2.0 | 4,617 | 4/9/2020 |
2.1.0 | 59,405 | 3/3/2020 |
2.0.4 | 44,654 | 4/2/2019 |
2.0.3 | 758 | 3/20/2019 |
2.0.2 | 949 | 2/22/2019 |
2.0.1 | 4,083 | 2/1/2019 |
2.0.0 | 1,750 | 1/10/2019 |
2.0.0-alpha15 | 981 | 1/3/2019 |
2.0.0-alpha14 | 952 | 12/19/2018 |
2.0.0-alpha13 | 551 | 12/18/2018 |
2.0.0-alpha12 | 532 | 12/18/2018 |
2.0.0-alpha11 | 865 | 12/7/2018 |
2.0.0-alpha10 | 542 | 12/7/2018 |
2.0.0-alpha09 | 990 | 11/30/2018 |
2.0.0-alpha08 | 1,105 | 11/23/2018 |
2.0.0-alpha07 | 821 | 11/22/2018 |
2.0.0-alpha06 | 546 | 11/21/2018 |
2.0.0-alpha05 | 596 | 11/21/2018 |
2.0.0-alpha04 | 792 | 11/15/2018 |
2.0.0-alpha03 | 792 | 11/14/2018 |
2.0.0-alpha02 | 558 | 11/9/2018 |
2.0.0-alpha01 | 805 | 10/22/2018 |
1.0.2 | 3,597 | 8/27/2018 |
1.0.1 | 1,377 | 4/6/2018 |
1.0.0 | 1,364 | 12/20/2017 |
RockLib.Messaging version 2.0.0
- Changes to `MessagingScenarioFactory`:
- No longer has a concept of "queue vs topic". The factory methods are `CreateSender` and `CreateReceiver`.
- Uses `IConfiguration` as its data source instead of `IMessagingScenarioFactory` (which no longer exists).
- Configurations are assumed to have the subsections, `Senders` and/or `Receivers` (case-insensitive), that respectively contain one or more type-defined implementations of `ISender` and `IReceiver`.
- Uses `RockLib.Configuration.Config.Root.GetSection("RockLib.Messaging")` as the default value for its configuration.
- Can call `MessagingScenarioFactory.SetConfiguration` to set the configuration programmatically.
- Has `CreateSender` and `CreateReceiver` extension methods that work with any instance of `IConfiguration` to create senders and receivers.
- Adds optional `defaultTypes`, `valueConverters`, `resolver`, and `reloadOnConfigChange` parameters to the create methods, allowing greater customization of the sender or receiver.
- Changes to the sending API:
- There is no longer an `ISenderMessage` interface, just the concrete `SenderMessage` class.
- Automatically handles encoding and compression.
- Replaces the `MessageFormat` property with `IsBinary`.
- Renames `StringValue` and `BinaryValue` properties to `StringPayload` and `BinaryPayload`.
- Removes the `Priority` property.
- The `ISender` interface's `SendAsync` method takes a `CancellationToken` parameter.
- Changes to the receiving API:
- `IReceiverMessage`
- The `Acknowledge` method is renamed to `AcknowledgeAsync` and made asynchronous (it returns a `Task`).
- Adds `RollbackAsync` and `RejectAsync` methods.
- RollbackAsync allows users to indicate that a message was not successfully processed but should be (or should be allowed to be) redelivered.
- RejectAsync allows users to indicate that a message could not be successfully processed and should not be redelivered.
- AcknowledgeAsync allows users to indicate that a message was successfully processed and should not be redelivered.
- Adds `Handled` property.
- Returns false for a message that has not yet been handled by the `AcknowledgeAsync`, `RollbackAsync`, or `RejectAsync` methods.
- Returns true for a message after it has been handled by the `AcknowledgeAsync`, `RollbackAsync`, or `RejectAsync` methods.
- Replaces `GetStringValue` and `GetBinaryValue` methods with `StringPayload` and `BinaryPayload` properties.
- Replaces `GetHeaderValue` and `GetHeaderNames` methods with `Headers` property.
- Removes the `Priority` property.
- `IReceiver`
- The `MessageReceived` event and `Start` method are replaced by the read/write `MessageHandler` property of type `IMessageHandler`.
- The receiver is started when the property is set.
- The receiver calls the `OnMessageReceivedAsync` method of its `MessageHandler` when a message is received.
- A receiver can also be started by invoking the `Start` extension method.
- The delegate parameter passed to the extension method is invoked when the receiver receives a message.
- Adds an `Error` event for implementations to invoke when an internal error occurs - useful when errors originate in a background thread.
- `Receiver` base class
- An abstract class to simplify implementations of the `IReceiver` interface and make them more consistent.
- Adds validation in the setter of the `MessageHandler` property so the a receiver can only be started once. Also disallows a null value.
- `ReceiverMessage` base class
- An abstract class to simplify implementations of the `IReceiverMessage` interface and make them more consistent.
- Its constructor handles the decoding and decompression of incoming message payloads, whether they be string or binary.
- Provides an abstract method for implementations to populate its headers.
- Provides abstract methods for the handler methods: `AcknowledgeAsync`, `RollbackAsync`, and `RejectAsync`.
- Ensures that the message is only handled once.
- The Named Pipes feature has been moved to its own package, RockLib.Messaging.NamedPipes (it is no longer included in the main RockLib.Messaging package).
- Adds the RockLib.Messaging.SNS package.
- Adds `SNSSender` class, which allows messages to be sent to an SNS topic.
- Changes to the RockLib.Messaging.SQS package:
- Renames `SQSQueueSender` and `SQSQueueReceiver` to `SQSSender` and `SQSReceiver`.
- Adds optional `region` parameter to `SQSSender` and `SQSReceiver`.
- Adds optional `unpackSNS` flag to `SQSReceiver`.
- Useful when the SQS queue receives messages from an SNS topic - the payloads of such messages contain a JSON object representing the entire raw SNS message.
- When set, the JSON object is unpacked, and the body and headers are populated from the unpacked message.
- Adds RockLib.Messaging.Http package.
- `HttpClientSender`
- An ...truncated (10000 bytes)