Purview.Containers
1.0.0-prerelease.5
dotnet add package Purview.Containers --version 1.0.0-prerelease.5
NuGet\Install-Package Purview.Containers -Version 1.0.0-prerelease.5
<PackageReference Include="Purview.Containers" Version="1.0.0-prerelease.5" />
<PackageVersion Include="Purview.Containers" Version="1.0.0-prerelease.5" />
<PackageReference Include="Purview.Containers" />
paket add Purview.Containers --version 1.0.0-prerelease.5
#r "nuget: Purview.Containers, 1.0.0-prerelease.5"
#:package Purview.Containers@1.0.0-prerelease.5
#addin nuget:?package=Purview.Containers&version=1.0.0-prerelease.5&prerelease
#tool nuget:?package=Purview.Containers&version=1.0.0-prerelease.5&prerelease
Purview.Containers
The umbrella package: one reference that brings the abstractions and both backends, so the same tests run on WSL Containers (WSLC) on a Windows machine and on Docker everywhere else — no backend choice in your code or environment.
dotnet add package Purview.Containers
It depends on:
Purview.Containers.Core— the backend-neutral abstractions (IContainer,ContainerBuilder,ContainerBackends, wait strategies, …; public namespacePurview.Containers).Purview.Containers.Wsl— the WSL Containers backend.Purview.Containers.Docker— the Docker backend (Testcontainers).
Quick start
A service module plus this package is all you need:
dotnet add package Purview.Containers.Redis
dotnet add package Purview.Containers
using Purview.Containers.Redis;
using StackExchange.Redis;
await using var redis = new RedisBuilder().Build();
await redis.StartAsync(); // waits for redis-cli ping
await using var cache = await ConnectionMultiplexer.ConnectAsync(redis.GetConnectionString());
await cache.GetDatabase().PingAsync();
There is no registration line and no PURVIEW_CONTAINERS_BACKEND: each backend package ships
buildTransitive assets that register themselves in your assembly, and automatic selection picks the
first usable backend (WSLC is preferred where it works, Docker otherwise). Use a net10.0 (or later)
project — see Using it in your tests.
When to use this versus a single backend
| You want | Reference |
|---|---|
| WSLC locally and Docker in CI, one project, zero config | Purview.Containers (this package) |
| Docker only (e.g. a Linux-only CI job) — avoids the ~19 MB WSLC payload | Purview.Containers.Core + Purview.Containers.Docker |
| WSLC only | Purview.Containers.Core + Purview.Containers.Wsl |
Adding a future backend (for example Podman) means adding its package to this bundle; your project does not change.
Requirements
- .NET 10 or later. The abstractions and service modules are portable; the WSL Containers backend is multi-target and stays dormant on non-Windows hosts. See the consumer requirements.
- Either a Windows 10/11 host with WSL Containers (
wsl --install --no-distribution) or a reachable Docker daemon.
Documentation
Experimental. The public API, defaults and packaging rules can change between prereleases; there is no production support guarantee.
| 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)
- Purview.Containers.Docker (>= 1.0.0-prerelease.5)
- Purview.Containers.Wsl (>= 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 | 0 | 10/2/2026 |
| 1.0.0-prerelease.4 | 4 | 10/2/2026 |
| 1.0.0-prerelease.3 | 24 | 10/2/2026 |
| 1.0.0-prerelease.2 | 28 | 10/1/2026 |