ConfKit 1.0.1
See the version list below for details.
dotnet add package ConfKit --version 1.0.1
NuGet\Install-Package ConfKit -Version 1.0.1
<PackageReference Include="ConfKit" Version="1.0.1" />
<PackageVersion Include="ConfKit" Version="1.0.1" />
<PackageReference Include="ConfKit" />
paket add ConfKit --version 1.0.1
#r "nuget: ConfKit, 1.0.1"
#:package ConfKit@1.0.1
#addin nuget:?package=ConfKit&version=1.0.1
#tool nuget:?package=ConfKit&version=1.0.1
ConfKit

ConfKit is a lightweight and extensible .NET library for parsing and generating multiple configuration formats, including INI and UCI (OpenWrt Unified Configuration Interface).
It provides a consistent programming model, supports structured configuration access, and enables seamless conversion to JSON for strong typing and serialization.
🧩 Multi-format Support
- INI configuration parsing and generation
- UCI (OpenWrt) configuration parsing and generation
🏗 Structured Configuration Model
- Hierarchical sections and entries
- Strongly-typed object model
- Preserve structure and ordering
🔄 JSON Interoperability
- Convert configurations to
JsonObject - Deserialize into custom strongly-typed classes
- Flexible integration with
System.Text.Json
⚡ Developer Friendly
- Simple and intuitive API
- Works with
netstandard2.0and modern .NET versions - Easy to extend for additional formats (TOML, YAML, etc.)
| TargetFramework(s) | Package | |
|---|---|---|
| ConfKit |
Installation
dotnet add package ConfKit
🚀 Usage
INI Support
Parse INI Content
string iniContent = @"
[server.database]
host = localhost
port = 1433";
var config = IniParser.Parse(iniContent);
string host = config.Sections
.First(s => s.Name == "server")
.SubSections.First(s => s.Name == "database")
.Entries.First(e => e.Key == "host").Value;
Create INI Configuration
var config = new IniConfig
{
Entries =
[
new IniEntry("debug", "true"),
],
Sections =
[
new IniSection("server")
{
SubSections =
[
new IniSection("database")
{
Entries =
[
new IniEntry("host", "localhost"),
new IniEntry("port", "1433")
],
},
],
},
],
};
string output = config.ToString();
UCI Support
Parse UCI Configuration
string configContent = @"
package network
config interface 'lan'
option type 'bridge'
option ifname 'eth0'
option proto 'static'
";
var config = UciParser.Parse(configContent);
Console.WriteLine(config.PackageName);
Create UCI Configuration
var config = new UciConfig
{
PackageName = "network",
Sections =
[
new UciSection("interface", "lan")
{
Options =
[
new UciOption("type", "bridge"),
new UciOption("ifname", "eth0"),
new UciOption("proto", "static")
]
}
]
};
string output = config.ToString();
🔄 JSON Conversion & Strong Typing
Both INI and UCI configurations can be converted into a JsonObject, making it easy to deserialize into custom types.
Example
var config = IniParser.Parse(iniContent);
// Convert to JSON object
JsonObject json = config.ToSerializableJsonObject();
// Deserialize to custom type
var options = new JsonSerializerOptions
{
NumberHandling = JsonNumberHandling.AllowReadingFromString
};
var result = json.Deserialize<MyConfig>(options);
TODO
- Add support for reading and writing comments (current parser just ignores comments)
License
MIT License
Contributing
Contributions are welcome! Please open an issue or submit a pull request for any improvements or bug fixes.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. 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 is compatible. 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 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
- No dependencies.
-
net8.0
- No dependencies.
-
net9.0
- 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.