NATS.Client.Core
2.0.0-alpha.2
Prefix Reserved
See the version list below for details.
dotnet add package NATS.Client.Core --version 2.0.0-alpha.2
NuGet\Install-Package NATS.Client.Core -Version 2.0.0-alpha.2
<PackageReference Include="NATS.Client.Core" Version="2.0.0-alpha.2" />
paket add NATS.Client.Core --version 2.0.0-alpha.2
#r "nuget: NATS.Client.Core, 2.0.0-alpha.2"
// Install NATS.Client.Core as a Cake Addin #addin nuget:?package=NATS.Client.Core&version=2.0.0-alpha.2&prerelease // Install NATS.Client.Core as a Cake Tool #tool nuget:?package=NATS.Client.Core&version=2.0.0-alpha.2&prerelease
NATS.NET V2
Preview
The NATS.NET V2 client is in preview and not recommended for production use. Codebase is still under heavy development and currently we only have implementations for core NATS features.
Please test and provide feedback by visiting our Slack channel.
NATS.NET V2 Goals
- Only support Async I/O
- Target latest .NET LTS Release (currently
net6.0
)
Packages
- NATS.Client.Core: core NATS
- NATS.Client.Hosting: extension to configure DI container
- NATS.Client.JetStream: JetStream not yet implemented
Basic Usage
Download the latest nats-server
for your platform and run it without any arguments. nats-server
will listen
on its default TCP port 4222.
Given that we have a plain class Bar
, we can publish and subscribe to our nats-server
sending
and receiving Bar
objects:
public record Bar
{
public int Id { get; set; }
public string Name { get; set; }
}
Subscribe to all bar
related subjects:
await using var nats = new NatsConnection(options);
await using sub = await nats.SubscribeAsync<Bar>("bar.>");
await foreach (var msg in sub.Msgs.ReadAllAsync())
{
Console.WriteLine($"Received {msg.Subject}: {msg.Data}\n");
}
Publish Bar
objects to related bar
subjects:
await using var nats = new NatsConnection();
for (int i = 0; i < 10; i++)
{
Console.WriteLine($" Publishing {i}...");
await nats.PublishAsync<Bar>($"bar.baz.{i}", new Bar { Id = i, Name = "Baz" });
}
You should also hook your logger to NatsConnection
to make sure all is working as expected or
to get help diagnosing any issues you might have:
var options = NatsOpts.Default with { LoggerFactory = new MinimumConsoleLoggerFactory(LogLevel.Error) };
await using var nats = new NatsConnection(options);
Contributing
- Run
dotnet format
at root directory of project in order to clear warnings that can be auto-formatted
Attribution
This library is based on the excellent work in Cysharp/AlterNats
Product | Versions 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. |
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.1)
- Microsoft.Extensions.Primitives (>= 6.0.0)
- System.IO.Hashing (>= 6.0.1)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on NATS.Client.Core:
Package | Downloads |
---|---|
NATS.Client.JetStream
JetStream support for NATS.Client. |
|
NATS.Client.Services
Service API support for NATS.Client. |
|
NATS.Client.Hosting
ASP.NET Core and Generic Host support for NATS.Client. |
|
NATS.Net
NATS client for modern .NET |
|
NATS.Client.Serializers.Json
NATS client generic JSON serializer. Not suitable for native AOT deployments. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last updated |
---|---|---|
2.5.4 | 134 | 11/13/2024 |
2.5.3 | 2,977 | 11/5/2024 |
2.5.2 | 8,963 | 10/22/2024 |
2.5.1 | 9,490 | 10/17/2024 |
2.5.0 | 10,190 | 10/9/2024 |
2.5.0-preview.2 | 50 | 10/8/2024 |
2.5.0-preview.1 | 125 | 10/1/2024 |
2.4.0 | 13,393 | 9/17/2024 |
2.4.0-preview.3 | 66 | 9/11/2024 |
2.4.0-preview.2 | 109 | 8/23/2024 |
2.4.0-preview.1 | 1,157 | 8/5/2024 |
2.3.3 | 60,871 | 8/2/2024 |
2.3.3-preview.4 | 177 | 7/26/2024 |
2.3.3-preview.3 | 103 | 7/25/2024 |
2.3.3-preview.2 | 53 | 7/24/2024 |
2.3.3-preview.1 | 171 | 7/18/2024 |
2.3.2 | 36,647 | 7/10/2024 |
2.3.1 | 7,629 | 7/9/2024 |
2.3.1-preview.2 | 62 | 7/8/2024 |
2.3.1-preview.1 | 59 | 7/6/2024 |
2.3.0 | 19,503 | 7/3/2024 |
2.3.0-preview.1 | 582 | 6/24/2024 |
2.2.3 | 44,496 | 6/11/2024 |
2.2.2 | 17,734 | 5/23/2024 |
2.2.1 | 99,573 | 4/17/2024 |
2.2.0 | 18,561 | 4/4/2024 |
2.1.4 | 22,177 | 3/19/2024 |
2.1.3 | 5,644 | 3/12/2024 |
2.1.2 | 28,988 | 2/27/2024 |
2.1.1 | 6,428 | 2/20/2024 |
2.1.0 | 15,185 | 2/10/2024 |
2.1.0-preview.7 | 70 | 2/8/2024 |
2.1.0-preview.6 | 95 | 2/2/2024 |
2.1.0-preview.5 | 1,334 | 1/25/2024 |
2.1.0-preview.4 | 63 | 1/23/2024 |
2.1.0-preview.3 | 13,544 | 1/18/2024 |
2.1.0-preview.2 | 1,340 | 1/12/2024 |
2.1.0-preview.1 | 77 | 1/11/2024 |
2.0.3 | 77,252 | 1/5/2024 |
2.0.3-preview.1 | 435 | 12/22/2023 |
2.0.2 | 22,387 | 12/15/2023 |
2.0.2-preview.2 | 91 | 12/12/2023 |
2.0.2-preview.1 | 1,182 | 12/6/2023 |
2.0.1 | 17,293 | 11/29/2023 |
2.0.0 | 1,540 | 11/23/2023 |
2.0.0-rc.2 | 976 | 11/21/2023 |
2.0.0-rc.1 | 354 | 11/17/2023 |
2.0.0-beta.3 | 80 | 11/16/2023 |
2.0.0-beta.2 | 5,599 | 11/13/2023 |
2.0.0-beta.1 | 665 | 11/7/2023 |
2.0.0-beta.0 | 402 | 11/7/2023 |
2.0.0-alpha.7 | 590 | 10/27/2023 |
2.0.0-alpha.6 | 144 | 10/25/2023 |
2.0.0-alpha.5 | 231 | 10/20/2023 |
2.0.0-alpha.4 | 9,381 | 10/12/2023 |
2.0.0-alpha.3 | 329 | 9/13/2023 |
2.0.0-alpha.2 | 112 | 9/7/2023 |
2.0.0-alpha.1 | 114 | 8/31/2023 |
2.0.0-alpha.0 | 879 | 7/10/2023 |