Purview.Containers.Nats
1.0.0-prerelease.5
dotnet add package Purview.Containers.Nats --version 1.0.0-prerelease.5
NuGet\Install-Package Purview.Containers.Nats -Version 1.0.0-prerelease.5
<PackageReference Include="Purview.Containers.Nats" Version="1.0.0-prerelease.5" />
<PackageVersion Include="Purview.Containers.Nats" Version="1.0.0-prerelease.5" />
<PackageReference Include="Purview.Containers.Nats" />
paket add Purview.Containers.Nats --version 1.0.0-prerelease.5
#r "nuget: Purview.Containers.Nats, 1.0.0-prerelease.5"
#:package Purview.Containers.Nats@1.0.0-prerelease.5
#addin nuget:?package=Purview.Containers.Nats&version=1.0.0-prerelease.5&prerelease
#tool nuget:?package=Purview.Containers.Nats&version=1.0.0-prerelease.5&prerelease
Purview.Containers.Nats
Throwaway NATS brokers for .NET integration testing on WSL Containers (WSLC) or Docker.
dotnet add package Purview.Containers.Nats
Backend-neutral: depends on Purview.Containers.Core and needs a backend package (Purview.Containers.Wsl or Purview.Containers.Docker). NATS.Client.Core is not referenced by this
package — bring your own client.
Requirements
- WSL Containers backend: Windows 10/11 with WSL Containers (
wsl --install --no-distribution), and a.NET 10or later project. A platform-neutralnet10.0project binds the portable facade and gets automatic WSLC-or-Docker selection; a Windows target framework (net10.0-windows10.0.19041.0, x64 or arm64) binds the implementation directly. ThePurview.Containers.Wslpackage suppliesbuildTransitivedefaults forWindowsSdkPackageVersion/PlatformTargetand (for a platform-neutral consumer on a Windows build host) the implementation payload, rejecting an unsupported consumer withPCC0001/PCC0002— see the consumer requirements. - Docker backend: any reachable Docker daemon (
docker info), with anet10.0or later project on any platform. No Windows target framework and noPCCguards apply. - Experimental: the API, defaults and packaging can change between prereleases; there is no production support guarantee.
Quick start
using Purview.Containers.Nats;
using NATS.Client.Core;
await using var nats = new NatsBuilder().Build();
await nats.StartAsync(); // waits for 'Listening for client connections'
await using var client = new NatsConnection(new NatsOpts { Url = nats.GetConnectionString() });
await client.PublishAsync("orders.created", "42");
API
| Member | Purpose |
|---|---|
NatsBuilder() / NatsBuilder(string image) |
Default image nats:2, or a custom image. |
NatsBuilder.ClientPort (4222), MonitoringPort (8222) |
Container ports, both mapped to random host ports. |
NatsContainer.GetClientEndpoint() |
nats://127.0.0.1:{mappedPort} as a Uri. |
NatsContainer.GetConnectionString() |
The client endpoint as a string. |
NatsContainer.GetMonitoringEndpoint() |
Monitoring HTTP endpoint (http://127.0.0.1:{mappedPort}), e.g. /varz. |
The default wait strategy matches the Listening for client connections log line unless you supply your own
with WithWaitStrategy(...). Endpoint accessors resolve the mapped host ports, so call them after
StartAsync().
Documentation
- Backends: WSLC or Docker — choosing and configuring the runtime.
- Modules — the module contract and readiness choices.
- Wait Strategies — overriding readiness checks.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | 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. |
-
net10.0
- Microsoft.Extensions.Telemetry.Abstractions (>= 10.10.0)
- Purview.Containers.Core (>= 1.0.0-prerelease.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0-prerelease.5 | 29 | 10/2/2026 |
| 1.0.0-prerelease.4 | 36 | 10/2/2026 |
| 1.0.0-prerelease.3 | 34 | 10/2/2026 |
| 1.0.0-prerelease.2 | 28 | 10/1/2026 |