@@ -117,38 +117,38 @@ of some examples of KDL in the wild (either v1, v2, or both):
117
117
118
118
## Implementations
119
119
120
- > There are two major versions of KDL. Different libraries may support one or the
121
- > other, or even provide a "hybrid" mode where both versions are attempted, since
122
- > there's no data ambiguity between v1 and v2 documents.
123
-
124
- | Language | Implementation | v1 | v2 | Notes |
125
- | --- | --- | --- | --- | --- |
126
- | C | [ ckdl ] ( https://github.com/tjol/ckdl ) | ✅ | ✅ | |
127
- | C#/.NET | [ Kadlet ] ( https://github.com/oledfish/Kadlet ) | ✅ | ✖️ | |
128
- | C++ | [ kdlpp ] ( https://github.com/tjol/ckdl ) | ✅ | ✅ | part of ckdl, requires C++20 |
129
- | Common Lisp | [ kdlcl ] ( https://github.com/chee/kdlcl ) | ✅ | ✖️ | |
130
- | Crystal | [ kdl-cr ] ( https://github.com/danini-the-panini/kdl-cr ) | ✅ | ✖️ | |
131
- | Dart | [ kdl-dart ] ( https://github.com/danini-the-panini/kdl-dart ) | ✅ | ✖️ | |
132
- | Elixir | [ kuddle ] ( https://github.com/IceDragon200/kuddle ) | ✅ | ✅ | |
133
- | Go | [ gokdl ] ( https://github.com/lunjon/gokdl ) | ✅ | ✖️ | |
134
- | Go | [ kdl-go ] ( https://github.com/sblinch /kdl-go ) | ✅ | ✖️ | |
135
- | Haskell | [ Hustle ] ( https://github.com/fuzzypixelz/Hustle ) | ✅ | ✖️ | |
136
- | Java | [ kdl4j ] ( https://github.com/hkolbeck/kdl4j ) | ✅ | ✖️ | |
137
- | JavaScript | [ @ bgotink/ kdl] ( https://github.com/bgotink /kdl ) | ✅ | ✅ | Format/comment-preserving parser |
138
- | JavaScript | [ @ virtualstate/ kdl] ( https://github.com/virtualstate/ kdl ) | ✅ | ✖️ | query only, JSX based |
139
- | JavaScript | [ kdljs ] ( https://github.com/kdl-org/kdljs ) | ✅ | ✖️ | |
140
- | Lua | [ kdlua ] ( https://github.com/danini-the-panini/kdlua ) | ✅ | ✖️ | |
141
- | Nim | [ kdl-nim ] ( https://github.com/Patitotective/kdl-nim ) | ✅ | ✖️ | |
142
- | OCaml | [ ocaml-kdl ] ( https://github.com/Bannerets/ocaml-kdl ) | ✅ | ✖️ | |
143
- | PHP | [ kdl-php ] ( https://github.com/kdl-org/kdl-php ) | ✅ | ✖️ | |
144
- | Python | [ ckdl ] ( https://github.com/tjol/ckdl ) | ✅ | ✅ | |
145
- | Python | [ cuddle ] ( https://github.com/djmattyg007/python-cuddle ) | ✅ | ✖️ | |
146
- | Python | [ kdl-py ] ( https://github.com/tabatkins/kdlpy ) | ✅ | ✅ | |
147
- | Ruby | [ kdl-rb ] ( https://github.com/danini-the-panini/kdl-rb ) | ✅ | ✖️ | |
148
- | Rust | [ kdl-rs ] ( https://github.com/kdl-org /kdl-rs ) | ✅ | ✅ | Format/comment-preserving parser |
149
- | Rust | [ knus ] ( https://crates.io/crates/knus/ ) | ✅ | ✖️ | Serde- _ style _ derive macros (not actual Serde) |
150
- | Swift | [ kdl-swift ] ( https://github.com/danini-the-panini/kdl-swift ) | ✅ | ✖️ | |
151
- | XSLT | [ xml2kdl ] ( https://github.com/Devasta/XML2KDL ) | ✅ | ✖️ | |
120
+ * C - [ ckdl ] ( https://github.com/tjol/ckdl ) \*
121
+ * C#/.NET - [ Kadlet ] ( https://github.com/oledfish/Kadlet )
122
+ * C++ - [ kdlpp ] ( https://github.com/tjol/ckdl ) \* (part of ckdl, requires C++20)
123
+ * Common Lisp - [ kdlcl ] ( https://github.com/chee/kdlcl )
124
+ * Crystal - [ kdl-cr ] ( https://github.com/danini-the-panini/kdl-cr )
125
+ * Dart - [ kdl-dart ] ( https://github.com/danini-the-panini/kdl-dart )
126
+ * Elixir - [ kuddle ] ( https://github.com/IceDragon200/kuddle ) \*
127
+ * Go -
128
+ * [ gokdl ] ( https://github.com/lunjon/gokdl )
129
+ * [ kdl-go ] ( https://github.com/sblinch/kdl-go )
130
+ * Haskell - [ Hustle ] ( https://github.com/fuzzypixelz/Hustle )
131
+ * Java - [ kdl4j ] ( https://github.com/hkolbeck/kdl4j )
132
+ * JavaScript -
133
+ * [ @ bgotink/kdl ] ( https://github.com/bgotink/kdl ) \* (Format/comment-preserving parser)
134
+ * [ @ virtualstate/ kdl] ( https://github.com/virtualstate /kdl ) (query only, JSX based)
135
+ * [ kdljs ] ( https://github.com/kdl-org/kdljs )
136
+ * Lua - [ kdlua ] ( https://github.com/danini-the-panini/kdlua )
137
+ * Nim - [ kdl-nim ] ( https://github.com/Patitotective /kdl-nim )
138
+ * OCaml - [ ocaml- kdl] ( https://github.com/Bannerets/ocaml- kdl )
139
+ * PHP - [ kdl-php ] ( https://github.com/kdl-org/kdl-php )
140
+ * Python -
141
+ * [ ckdl ] ( https://github.com/tjol/ckdl ) \*
142
+ * [ cuddle ] ( https://github.com/djmattyg007/python-cuddle )
143
+ * [ kdl-py ] ( https://github.com/tabatkins/kdlpy ) \*
144
+ * Ruby - [ kdl-rb ] ( https://github.com/danini-the-panini/kdl-rb )
145
+ * Rust -
146
+ * [ kdl-rs ] ( https://github.com/kdl-org/kdl-rs ) (Format/comment-preserving parser) \*
147
+ * [ knus ] ( https://crates.io/crates/knus/ ) (Serde- _ style _ derive macros (not actual Serde))
148
+ * Swift - [ kdl-swift ] ( https://github.com/danini-the-panini /kdl-swift )
149
+ * XSLT - [ xml2kdl ] ( https://github.com/Devasta/XML2KDL )
150
+
151
+ \* Supports both KDL v1 and v2
152
152
153
153
</section >
154
154
@@ -206,21 +206,21 @@ Nodes without children are terminated by a newline, a semicolon, or the end of
206
206
a file stream:
207
207
208
208
``` kdl
209
- node1; node2; node3;
209
+ node1; node2; node3
210
210
```
211
211
212
212
### Values
213
213
214
214
KDL supports 4 data types:
215
215
216
216
* Strings: ` unquoted ` , ` "hello world" ` , or ` #"hello world"# `
217
- * Numbers: ` 123.45 `
217
+ * Numbers: ` 123.45 ` , ` 0xdeadbeef ` , ` #inf ` , ` #-inf ` , ` #nan `
218
218
* Booleans: ` #true ` and ` #false `
219
219
* Null: ` #null `
220
220
221
221
#### Strings
222
222
223
- It supports three different formats for string input: identifiers , quoted, and raw.
223
+ It supports three different formats for string input: unquoted , quoted, and raw.
224
224
225
225
``` kdl
226
226
node1 this-is-a-string
@@ -494,7 +494,7 @@ JSON](https://github.com/kdl-org/kdl/blob/main/JSON-IN-KDL.md).
494
494
495
495
#### What about TOML?
496
496
497
- It nests very poorly. It doesn't fare well with large files.
497
+ It nests very poorly. It doesn't fare well with large files. Also, I felt some discomfort [ continuing to use and promote something by its creator ] ( https://en.wikipedia.org/wiki/Tom_Preston-Werner#Resignation_from_GitHub ) .
498
498
499
499
#### What about XML?
500
500
0 commit comments