A high-performance, zero-allocation INI-style configuration file parser for .NET 10 with Microsoft.Extensions.Configuration integration.
- Zero-allocation hot path — uses
SearchValues<char>for SIMD-accelerated parsing - Immutable output — returns
ConfigDocumentbacked byFrozenDictionaryinstances - Round-trip support —
ConfigWriterserializes back to INI with smart quoting and quote escaping - Case-insensitive sections and keys with
OrdinalIgnoreCasecomparison - Section merging — duplicate sections merge automatically (last-write-wins for keys)
- Quoted values — preserves whitespace and comment characters inside
"..." - Inline comments —
#and;stripped from unquoted values - Global keys — keys before any section header are supported
- Configuration integration — drop-in
IConfigurationBuilder.AddConfigFile()extension
| Package | Status |
|---|---|
| Zini | |
| Zini.Configuration |
dotnet add package Zini.Configuration # IConfigurationBuilder supportusing Zini;
var doc = ConfigParser.Parse("""
# Application settings
app_name = MyApp
[Server]
host = localhost
port = 8080
[Database]
connection = "Server=db;Port=5432;User=""admin"""
""");
// Indexer access
var host = doc["Server"]["host"]; // "localhost"
// Safe access (returns null if missing)
var port = doc.GetValue("Server", "port"); // "8080"
var appName = doc.GetGlobalValue("app_name"); // "MyApp"
// Metadata
doc.SectionNames // ["Server", "Database"]
doc.HasGlobalKeys // true
doc.ContainsSection("Server") // truevar doc = ConfigParser.Parse(input);
// Write to string
var output = ConfigWriter.Write(doc);
// Write to TextWriter (sync or async)
ConfigWriter.Write(textWriter, doc);
await ConfigWriter.WriteAsync(streamWriter, doc);using Microsoft.Extensions.Configuration;
using Zini.Configuration;
var configuration = new ConfigurationBuilder()
.AddConfigFile("appsettings.ini", optional: false, reloadOnChange: true)
.Build();
var host = configuration["Server:host"]; // "localhost"
var appName = configuration["app_name"]; // "MyApp" (global keys have no prefix)See docs/config-format-spec.md for the full format specification including quoting rules, merging behavior, and error handling.
dotnet build Zini.slnx
dotnet test Zini.slnx