Automatonic.Text.Kdl
0.0.3-alpha
This is a prerelease version of Automatonic.Text.Kdl.
dotnet add package Automatonic.Text.Kdl --version 0.0.3-alpha
NuGet\Install-Package Automatonic.Text.Kdl -Version 0.0.3-alpha
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Automatonic.Text.Kdl" Version="0.0.3-alpha" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Automatonic.Text.Kdl" Version="0.0.3-alpha" />
<PackageReference Include="Automatonic.Text.Kdl" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Automatonic.Text.Kdl --version 0.0.3-alpha
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Automatonic.Text.Kdl, 0.0.3-alpha"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Automatonic.Text.Kdl@0.0.3-alpha
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Automatonic.Text.Kdl&version=0.0.3-alpha&prerelease
#tool nuget:?package=Automatonic.Text.Kdl&version=0.0.3-alpha&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Automatonic.Text.Kdl
C# support for KDL in the style of the System.Text.Json library.
This is a goal / passion project for me personally. I will be using it as a self-directed exercise to expand my skills with several key SDKs in modern C# and to "scratch the itch" of supporting/implementing a configuration language that I find interesting / compelling. I want to:
- Compare and contrast
NewtonSoft.Json
(with which I am very familiar) toSystem.Text.Json
for posterity and performance- Use the resulting knowledge of low allocation span-based parsers to create
Automatonic.Text.Kdl
primitives- Build out additional features as relevant/appropriate
Must Have
KdlReader
- Fast forward-only parser/reader (analogous toUtf8JsonReader
)- Full spec compatibility (KDL 2.0) verified via unit test converage and the the well-defined test cases
- NuGet Package for easy / safe consumption
KdlWriter
- Low-level primitive writer (analogous toUtf8JsonWriter
)
Should Have
KdlDocument
- In memory DOM for random access (analogous toJsonDocument
)KdlSerializer
- Tool for serializing/deserializing KDL to/from objects in memory (analogous toJsonConvert
in NewtonSoft, orJsonSerializer
in System.Text.Json)
May Have (especially if prioritized by sponsorship)
- KDL css-like style selectors implementation using
KdlReader
for efficient results - Linq to objects style support (c.f.
JObject
, etc) - Reflection based serialization (c.f.
NewtonSoft.Json
,System.Text.Json
) - Helper types and routines to bind KDL to asp.net core as a supported/bindable content-type?
- Generation based serialization (c.f.
System.Text.Json
)
Will Not Have (without explicit sponsorship)
- Strict Support for KDL 1.0. KDL 2.0 supercedes in every descernable way and supports much of what KDL 1.0 documents would have express.
- Assumptions about the platform consuming this assembly. Should work wherever dotnet core does.
- Backwards compatibility for older .NET or older .NET core. I will be simplifying by starting with dotnet 9.0 and beyond. Even a .net standard implementation seems to be no longer strictly necessary moving forward (in my reading).
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | 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 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
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.
Version | Downloads | Last Updated |
---|---|---|
0.0.3-alpha | 93 | 5/18/2025 |
0.0.2-alpha | 149 | 5/16/2025 |
0.0.1-alpha | 180 | 2/28/2025 |