Anixe.IO.Messaging 4.0.0

dotnet add package Anixe.IO.Messaging --version 4.0.0
NuGet\Install-Package Anixe.IO.Messaging -Version 4.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="Anixe.IO.Messaging" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Anixe.IO.Messaging --version 4.0.0
#r "nuget: Anixe.IO.Messaging, 4.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.
// Install Anixe.IO.Messaging as a Cake Addin
#addin nuget:?package=Anixe.IO.Messaging&version=4.0.0

// Install Anixe.IO.Messaging as a Cake Tool
#tool nuget:?package=Anixe.IO.Messaging&version=4.0.0

Anixe.IO.Messaging

This project implements RECS (Resfinity Entity Consistency System) convention into the Rabbitmq broker. RECS has 3 actors:

  • publisher - sends entity to the rabbitmq (ConfirmedMessagingService class)
  • subscriber - receives enities from rabbitma via topich exchange with routing key binding (Subscription class). It has upscaling and downscaling considered thanks random queue names.
  • rabbitmq - the broker with topic exchanges and queues bind to these exchanges with routing key

Check the Anixe.IO.Messaging.ConsoleApp project for example.

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on Anixe.IO.Messaging:

Package Downloads
Anixe.IO.Messaging.AspCore

Package Description

Anixe.IO.Messaging.Serializer

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 2,653 1/8/2024
3.0.1 688 12/4/2023
3.0.0 4,784 11/22/2022
2.2.2 1,186 11/22/2022
2.2.1 305 11/14/2022
2.2.0 556 10/18/2022
2.1.3 1,135 10/18/2022
2.1.2 6,167 3/14/2022
2.1.1 5,507 11/4/2021
2.1.0 7,009 8/31/2021
2.0.1 1,873 7/8/2021
2.0.0 2,997 4/16/2021
1.1.17 1,551 4/9/2021
1.1.16 921 1/27/2021
1.1.15 686 11/16/2020
1.1.14 429 11/2/2020
1.1.13 1,334 10/22/2020
1.1.12 667 10/22/2020
1.1.11 563 9/29/2020
1.1.10 2,557 7/1/2020
1.1.9 2,022 5/21/2020
1.1.8 756 5/19/2020
1.1.7 1,187 5/8/2020
1.1.6 1,065 4/20/2020
1.1.5 652 4/17/2020
1.1.4 769 4/15/2020
1.1.2 992 3/30/2020
1.1.0 615 3/26/2020
1.0.6 590 3/20/2020
1.0.5 485 3/19/2020
1.0.4 611 3/19/2020
1.0.3 712 3/13/2020
1.0.2 525 3/11/2020
1.0.1 678 3/4/2020
1.0.0 681 2/27/2020

# Anixe.IO.Messaging CHANGELOG

## 4.0.0 - 2024-01-03

- Update Anixe.IO to 4.0.0
- Updated RabbitMQ.Client to 6.8.1
- Updated Microsoft.Extensions.Hosting.Abstractions from 7.0.0 to 8.0.0

## 3.0.1 - 2023-12-05

- Fix missing nullable annotation in Anixe.IO.Messaging.Core.Subscription.CreateConsumer(handler)
- Fix none of subscription events logged when no handlers are defined
- Reduce logging overhead in some cases
- Update Anixe.IO to 3.1.0

## 3.0.0 - 2022-11-16

- Drop support of older .NET versions, only .NET 6.0 left
- Updated Microsoft.Extensions.Hosting.Abstractions from 3.1.18 to 7.0.0
- Reduced heap allocation when serializing dates in message to JSON

## 2.2.1 - 2022-11-14

- Fix StackOverflowException while trying write `new object()` in NotificationMessage.Data

## 2.2.0 - 2022-10-18; Damian Jaszczurowski

- Extend SubscriberConfiguration with RegisterConsumersOnly flag, allowing for message consuming from queues declared externally

## 2.1.3 - 2022-10-18

- Updated RabbitMQ.Client to 6.4.0

## 2.1.2 - 2022-03-10

- Added more detailed logging in case of exception

## 2.1.1 - 2021-11-04

- Added handling yyyyMMddTHH:mm:ss.fffZ date format in ts_utc

## 2.1.0 - 2021-08-31

- Updated RabbitMQ.Client to 6.2.2
- Updated System.Text.Json to 5.0.2
- Updated Microsoft.Extensions.Hosting.Abstractions to 3.1.18
- Updated Anixe.IO to 2.1.0

## 2.0.1 - 2021-07-08

### Added

- License information in package metadata

## 1.1.17 - 2021-04-08

### Added

- Configuration option to create durable exchange

## 2.0 - 2021-04-14

### Added

- [Behavioral Change] Exchange is durable by default (for producers)
- [Behavioral Change] Queue is not exclusive by default anymore. It helps to delete queue from rabbitmq side and renew topology for this queue from subscriber's side.
- [Behavioral Change] Add prefetch declaration with 1 size as default (for consumers) to avoid memory pressure
- [New Feature] Add configurable heartbeath interval
- [New Feature] Add naming convention for unnamed queues to be able to find subsciber by queue name "<app>-<topic>-<random>"
- [Behavioral Change] Enchance hosted service to keep subscriptions up and running based on consumer's `IsRunning` flag
- [Behavioral Change] Add logging from events received from the Rabbitmq broker
- [Breaking Change] IListenerService.Listen method returns collection of `Subscription` instances for those who don't want to use `ListenerHostedService` (net framework)
- [New Feature] Add forcing reconnection with topology renew from host application via `ISubscriberReloader` singleton
- [New Feature] Add possibility to pass custom arguments to exchange declaration by producer and consumer

### Removed

- Remove Polly dependency. Retry has been replaced by internal strategy.