Kuddle.Net.Extensions.Configuration
0.0.0-preview
See the version list below for details.
dotnet add package Kuddle.Net.Extensions.Configuration --version 0.0.0-preview
NuGet\Install-Package Kuddle.Net.Extensions.Configuration -Version 0.0.0-preview
<PackageReference Include="Kuddle.Net.Extensions.Configuration" Version="0.0.0-preview" />
<PackageVersion Include="Kuddle.Net.Extensions.Configuration" Version="0.0.0-preview" />
<PackageReference Include="Kuddle.Net.Extensions.Configuration" />
paket add Kuddle.Net.Extensions.Configuration --version 0.0.0-preview
#r "nuget: Kuddle.Net.Extensions.Configuration, 0.0.0-preview"
#:package Kuddle.Net.Extensions.Configuration@0.0.0-preview
#addin nuget:?package=Kuddle.Net.Extensions.Configuration&version=0.0.0-preview&prerelease
#tool nuget:?package=Kuddle.Net.Extensions.Configuration&version=0.0.0-preview&prerelease
Kuddle.Net
Kuddle.Net is a .NET implementation of a KDL parser/serializer targeting v2 of the spec. KDL is a concise, human-readable language built for configuration and data exchange. Head to https://kdl.dev for more specifics on the KDL document language itself.
Installation
dotnet add package Kuddle.Net
Quick Start: Serialization & Deserialization
For most use cases, KdlSerializer provides the easiest way to work with KDL data by mapping it directly to C# classes.
Deserializing KDL to Objects
using Kuddle.Serialization;
var kdl = """
server "production" {
host "10.0.0.1"
port 8080
}
""";
// Deserialize a single root node
var config = KdlSerializer.Deserialize<ServerConfig>(kdl);
Serializing Objects to KDL
var myConfig = new ServerConfig { Host = "localhost", Port = 3000 };
string kdl = KdlSerializer.Serialize(myConfig);
Document-Level Deserialization
If your KDL file contains multiple top-level nodes of the same type, use DeserializeMany:
var kdl = """
user "alice" role="admin"
user "bob" role="user"
""";
var users = KdlSerializer.DeserializeMany<User>(kdl);
Mapping with Attributes
To control how C# properties map to KDL arguments, properties, and child nodes, use the provided attributes.
| Attribute | Target | Purpose |
|---|---|---|
[KdlArgument(index)] |
Property | Maps to a positional argument |
[KdlProperty(key)] |
Property | Maps to a key="value" property |
[KdlNode(name)] |
Property | Maps to a child node (or collection of nodes) |
[KdlType(name)] |
Class | Overrides the default node name |
Detailed Attribute Documentation
Advanced Usage
Lower-Level AST Access
If you need full control over the KDL structure, you can use KdlReader to get a KdlDocument AST.
KdlDocument doc = KdlReader.Read(kdlString);
License
Kuddle.Net is licensed under the MIT License.
| 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
- Kuddle.Net (>= 0.0.0-preview)
- Microsoft.Extensions.Configuration.FileExtensions (>= 10.0.0)
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 |
|---|---|---|
| 0.8.1-preview.1 | 39 | 1/18/2026 |
| 0.8.0 | 78 | 1/18/2026 |
| 0.7.1-preview.1 | 38 | 1/18/2026 |
| 0.7.0 | 84 | 1/16/2026 |
| 0.6.1-preview.1 | 39 | 1/16/2026 |
| 0.6.0 | 84 | 1/15/2026 |
| 0.5.1-preview.1 | 41 | 1/15/2026 |
| 0.5.0 | 84 | 1/14/2026 |
| 0.4.2-preview.1 | 39 | 1/14/2026 |
| 0.4.1 | 94 | 12/31/2025 |
| 0.4.1-preview.4 | 41 | 12/31/2025 |
| 0.0.0-preview | 87 | 12/31/2025 |