Synadia.Orbit.Counters 1.0.0-preview.3 (original) (raw)
Distributed counters backed by JetStream streams. Each subject in a counter-enabled stream is an independent counter supporting atomic increment/decrement operations with arbitrary precision values.
Usage
await using var client = new NatsClient();
var js = client.CreateJetStreamContext();
// Create a counter-enabled stream
await js.CreateStreamAsync(new StreamConfig("COUNTERS", ["counter.>"])
{
AllowMsgCounter = true,
AllowDirect = true,
});
// Get a counter handle
var counter = await js.GetCounterAsync("COUNTERS");
// Increment
var value = await counter.AddAsync("counter.hits", 1);
// Load current value
var current = await counter.LoadAsync("counter.hits");
// Get full entry with source tracking
var entry = await counter.GetAsync("counter.hits");
// Get multiple counters at once
await foreach (var e in counter.GetManyAsync(new[] { "counter.>" }))
{
Console.WriteLine($"{e.Subject}: {e.Value}");
}
| Product | 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 is compatible. 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. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .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 is compatible. |
| .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
- Microsoft.Bcl.AsyncInterfaces (>= 8.0.0)
- Microsoft.Bcl.Memory (>= 9.0.14)
- NATS.Client.JetStream (>= 2.7.3)
- System.Diagnostics.DiagnosticSource (>= 8.0.1)
- System.Threading.Channels (>= 8.0.0)
.NETStandard 2.1
- NATS.Client.JetStream (>= 2.7.3)
- System.Diagnostics.DiagnosticSource (>= 8.0.1)
- System.Threading.Channels (>= 8.0.0)
net10.0
- NATS.Client.JetStream (>= 2.7.3)
net8.0
- NATS.Client.JetStream (>= 2.7.3)
net9.0
- NATS.Client.JetStream (>= 2.7.3)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.