PicoCfg.Abs
2026.6.0
dotnet add package PicoCfg.Abs --version 2026.6.0
NuGet\Install-Package PicoCfg.Abs -Version 2026.6.0
<PackageReference Include="PicoCfg.Abs" Version="2026.6.0" />
<PackageVersion Include="PicoCfg.Abs" Version="2026.6.0" />
<PackageReference Include="PicoCfg.Abs" />
paket add PicoCfg.Abs --version 2026.6.0
#r "nuget: PicoCfg.Abs, 2026.6.0"
#:package PicoCfg.Abs@2026.6.0
#addin nuget:?package=PicoCfg.Abs&version=2026.6.0
#tool nuget:?package=PicoCfg.Abs&version=2026.6.0
PicoCfg
Async-first configuration management for .NET Native AOT.
Quick Start
dotnet add package PicoCfg
using PicoCfg;
using PicoCfg.Abs;
using PicoCfg.Extensions;
var cfg = await Cfg.CreateBuilder()
.Add("App:Name=MyApp\nApp:Version=1.0")
.BuildAsync();
var value = cfg.GetValue("App:Name");
Provider Model
Sources ──→ Providers ──→ Root ──→ Consumer
Sources define how config is produced. The root composes provider snapshots into a unified view. Consumers query via TryGetValue or GetValue.
Built-in Sources
| Source | Description |
|---|---|
| Dictionary | In-memory key-value pairs |
| Environment Variables | OS environment, prefix filtering, __ → : mapping |
| Command Line | --key=value, --key value, -key value, /key value |
| Stream | Line-based key=value text parsing with file watching |
| File Watching | Auto-reload on file change with debounce |
| Chained | Fallback to another ICfg instance |
| KeyPerFile | Kubernetes ConfigMap style — filename=key, content=value |
CfgBuilder
var cfg = await Cfg.CreateBuilder()
.AddEnvironmentVariables("APP_")
.Add(() => File.OpenRead("appsettings.cfg"))
.Add(() => File.OpenRead($"appsettings.{env}.cfg"),
watchPath: $"appsettings.{env}.cfg")
.AddCommandLine(args)
.BuildAsync();
Source-Generated Binding
Add PicoCfg.Gen as an analyzer. Call CfgBind.Bind<T> to trigger compile-time binding generation.
using PicoCfg;
public sealed class AppSettings
{
public string Name { get; init; }
public int MaxRetries { get; init; } = 3;
}
var settings = CfgBind.Bind<AppSettings>(cfg, "App");
DI Integration (PicoCfg.DI)
container.RegisterCfgRoot(root); // ICfgRoot + ICfg
container.RegisterCfgSingleton<AppSettings>("App"); // POCO from config
container.RegisterCfgOptionsSingleton<AppSettings>(); // typed options
Packages
| Package | Description |
|---|---|
| PicoCfg | Configuration runtime |
| PicoCfg.Abs | ICfg, ICfgRoot, ICfgSection |
| PicoCfg.Gen | CfgBind.Bind<T> source generator |
| PicoCfg.DI | DI integration |
| Product | Versions 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 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. net9.0 was computed. 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 was computed. 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 was computed. |
| .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 (>= 10.0.7)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on PicoCfg.Abs:
| Package | Downloads |
|---|---|
|
PicoCfg
Async-first configuration providers and extensions for PicoCfg. |
|
|
PicoCfg.Gen
Source generator package for PicoCfg generated binding. |
|
|
PicoCfg.DI
PicoDI registration helpers for PicoCfg roots, snapshots, and generated bound POCOs. |
GitHub repositories
This package is not used by any popular GitHub repositories.