HarakaMQ.Client
1.0.1
dotnet add package HarakaMQ.Client --version 1.0.1
NuGet\Install-Package HarakaMQ.Client -Version 1.0.1
<PackageReference Include="HarakaMQ.Client" Version="1.0.1" />
paket add HarakaMQ.Client --version 1.0.1
#r "nuget: HarakaMQ.Client, 1.0.1"
// Install HarakaMQ.Client as a Cake Addin #addin nuget:?package=HarakaMQ.Client&version=1.0.1 // Install HarakaMQ.Client as a Cake Tool #tool nuget:?package=HarakaMQ.Client&version=1.0.1
HarakaMQ
Reliable Message Oriented Middleware Based on UDP and created with .NET Core 2.0
Guarantees
- Message Delivery
- Order of messages across distributed brokers
- Eventual Consistency
Development
- Fail over when a broker goes down in a cluster setup
- Reconciliation when a broker rejoins a cluster
- Broker and client auto discovery in a cluster setup
- Add a new broker without restart of a cluster
Nuget
HarakaMQ.Client
https://www.nuget.org/packages/HarakaMQ.Client/
Message Broker
Start up the Broker by building the MessageBroker project, and runs it with the command "dotnet HarakaMQ.MessageBroker.dll". Remember to add a "settings.json" file in the running directory with this content:
{
"BrokerPort":11100,
"PrimaryNumber":1,
"AntiEntropyMilliseonds":1000,
"RunInCLusterSetup":false,
"Brokers":[]
}
You can also use the pre-builded Message broker (Client-Server setup) from this project https://github.com/Rotvig/HarakaMQ-Benchmark/tree/master/ClientServerSetup/Broker
Publish
var factory = new ConnectionFactory {HostName = "127.0.0.1", ListenPort = 11000, Port = 11100};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("hello");
channel.BasicPublish("hello", Encoding.UTF8.GetBytes("Hello world"));
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
Subscribe
var factory = new ConnectionFactory {HostName = "127.0.0.1", ListenPort = 12000, Port = 11100};
using (var connection = factory.CreateConnection())
using (var channel = connection.CreateModel())
{
channel.QueueDeclare("hello");
var consumer = new DefaultBasicConsumer(channel);
consumer.Received += (model, ea) =>
{
Console.WriteLine(Encoding.UTF8.GetString(ea.Body));
};
channel.BasicConsume("hello", consumer);
Console.WriteLine(" Press [enter] to exit.");
Console.ReadLine();
}
Test Repo
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 | net461 was computed. net462 was computed. 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. |
-
.NETStandard 2.0
- HarakaMQ.UDPCommunication (>= 1.0.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.