Cocoar.Configuration.Analyzers
5.0.0
dotnet add package Cocoar.Configuration.Analyzers --version 5.0.0
NuGet\Install-Package Cocoar.Configuration.Analyzers -Version 5.0.0
<PackageReference Include="Cocoar.Configuration.Analyzers" Version="5.0.0"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
<PackageVersion Include="Cocoar.Configuration.Analyzers" Version="5.0.0" />
<PackageReference Include="Cocoar.Configuration.Analyzers"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets> </PackageReference>
paket add Cocoar.Configuration.Analyzers --version 5.0.0
#r "nuget: Cocoar.Configuration.Analyzers, 5.0.0"
#:package Cocoar.Configuration.Analyzers@5.0.0
#addin nuget:?package=Cocoar.Configuration.Analyzers&version=5.0.0
#tool nuget:?package=Cocoar.Configuration.Analyzers&version=5.0.0
Reactive, strongly-typed configuration layering for .NET
Zero ceremony configuration that updates itself. Define a class, add a rule, inject it — no IOptions<T> wrappers, no Configure<T>() calls.
Install
dotnet add package Cocoar.Configuration # Core library (console apps)
dotnet add package Cocoar.Configuration.DI # + Microsoft.Extensions.DI
dotnet add package Cocoar.Configuration.AspNetCore # + health endpoints, feature flags
You only need one — each includes everything above it. Requires .NET 8+.
Quick Start
var builder = WebApplication.CreateBuilder(args);
builder.AddCocoarConfiguration(c => c
.UseConfiguration(rule => [
rule.For<AppSettings>().FromFile("appsettings.json"),
rule.For<AppSettings>().FromEnvironment("APP_"),
]));
var app = builder.Build();
// Inject directly — no wrapper
app.MapGet("/settings", (AppSettings settings) => new
{
settings.AppName,
settings.MaxRetries
});
app.Run();
Key Features
- Zero Ceremony — Define a class, add a rule, inject it. Just your POCO.
- Reactive by Default —
IReactiveConfig<T>updates automatically when sources change. - Atomic Updates —
IReactiveConfig<(T1, T2)>guarantees consistent snapshots across types. - Explicit Layering — Rules execute in order, last write wins. File, environment, CLI, HTTP.
- Memory-Safe Secrets —
Secret<T>with automatic zeroization and X.509 hybrid encryption. - Feature Flags & Entitlements — Strongly-typed, source-generated, with expiry health monitoring.
- Health Monitoring — Per-rule status tracking, OpenTelemetry metrics, ASP.NET Core health checks.
- Compile-Time Validation — Roslyn analyzers catch configuration errors in your IDE.
- First-Class Testing —
CocoarTestConfigurationwithAsyncLocal<T>isolation.
Providers
| Provider | Fluent API | Package |
|---|---|---|
| File (JSON) | .FromFile("path") |
Core |
| Environment Variables | .FromEnvironment("PREFIX_") |
Core |
| Command Line | .FromCommandLine("--prefix") |
Core |
| Static / Observable | .FromStaticJson() / .FromObservable() |
Core |
| HTTP | .FromHttp(url) |
Http |
| Microsoft IConfiguration | .FromIConfiguration(config) |
MicrosoftAdapter |
Examples
Explore real-world scenarios in the examples directory.
Contributing
Contributions welcome! See CONTRIBUTING.md for guidelines.
License
Apache-2.0 — see NOTICE for details.
Learn more about Target Frameworks and .NET Standard.
This package has no dependencies.
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 |
|---|---|---|
| 5.0.0 | 74 | 3/24/2026 |
| 5.0.0-beta.8 | 25 | 3/24/2026 |
| 5.0.0-beta.2 | 43 | 3/19/2026 |
| 4.3.0-flags.4 | 48 | 3/10/2026 |
| 4.3.0-beta.3 | 39 | 3/19/2026 |
| 4.2.1 | 99 | 2/3/2026 |
| 4.2.0 | 95 | 2/3/2026 |
| 4.2.0-master-backplane-arch... | 50 | 2/3/2026 |
| 4.2.0-master-backplane-arch... | 58 | 2/2/2026 |
| 4.2.0-master-backplane-arch... | 57 | 2/2/2026 |
| 4.2.0-master-backplane-arch... | 49 | 2/1/2026 |
| 4.2.0-beta.5 | 50 | 1/30/2026 |
| 4.2.0-beta.4 | 47 | 1/30/2026 |
| 4.2.0-beta.3 | 54 | 1/30/2026 |
| 4.2.0-beta.2 | 53 | 1/30/2026 |
| 4.2.0-beta.1 | 51 | 1/30/2026 |
| 4.1.0 | 102 | 1/11/2026 |
| 4.0.0 | 100 | 1/8/2026 |
| 3.4.0-secrets.36 | 210 | 11/16/2025 |
| 3.4.0-beta.6 | 261 | 11/16/2025 |
Full release notes: https://github.com/cocoar-dev/cocoar.configuration/blob/develop/CHANGELOG.md