Kuddle.Net
0.8.0
See the version list below for details.
dotnet add package Kuddle.Net --version 0.8.0
NuGet\Install-Package Kuddle.Net -Version 0.8.0
<PackageReference Include="Kuddle.Net" Version="0.8.0" />
<PackageVersion Include="Kuddle.Net" Version="0.8.0" />
<PackageReference Include="Kuddle.Net" />
paket add Kuddle.Net --version 0.8.0
#r "nuget: Kuddle.Net, 0.8.0"
#:package Kuddle.Net@0.8.0
#addin nuget:?package=Kuddle.Net&version=0.8.0
#tool nuget:?package=Kuddle.Net&version=0.8.0
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
- Parlot (>= 1.5.6)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Kuddle.Net:
| Package | Downloads |
|---|---|
|
Kuddle.Net.Extensions.Configuration
Microsoft.Extensions.Configuration provider for KDL configuration files using Kuddle.Net. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.8.1-preview.1 | 40 | 1/18/2026 |
| 0.8.0 | 96 | 1/18/2026 |
| 0.7.1-preview.1 | 39 | 1/18/2026 |
| 0.7.0 | 100 | 1/16/2026 |
| 0.6.1-preview.1 | 42 | 1/16/2026 |
| 0.6.0 | 94 | 1/15/2026 |
| 0.5.1-preview.1 | 44 | 1/15/2026 |
| 0.5.0 | 91 | 1/14/2026 |
| 0.4.2-preview.1 | 39 | 1/14/2026 |
| 0.4.1 | 101 | 12/31/2025 |
| 0.4.1-preview.4 | 49 | 12/31/2025 |
| 0.4.1-preview.1 | 50 | 12/31/2025 |
| 0.4.0 | 95 | 12/27/2025 |
| 0.4.0-preview.2 | 48 | 12/27/2025 |
| 0.4.0-preview.1 | 118 | 12/22/2025 |
| 0.3.0 | 269 | 12/18/2025 |
| 0.0.0-preview.0 | 131 | 12/22/2025 |
Initial release of Kuddle.Net KDL parser/serializer.