Format crates comparison
This document tracks feature parity across all facet format crates.
Legend:
- โ
= Fully supported with tests
- ๐ก = Partial support or untested
- ๐ซ = Not supported
- โ = Not applicable to this format
Note: msgp = facet-msgpack (shortened for column width)
Note: S = Serialization, D = Deserialization
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
bool | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
|
u8..u64 | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
|
i8..i64 | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
|
u128/i128 | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก |
f32/f64 | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
|
char | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
| โ
| โ
|
| NonZero integers | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ก | ๐ก | ๐ก |
All formats support String, &str (with best-effort borrowing), and Cow<str>.
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
Vec<T> | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก |
[T; N] (arrays) | โ
| โ
| โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | ๐ก |
HashSet<T> | โ
| โ
| โ
| ๐ก | โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
BTreeSet<T> | โ
| โ
| โ
| ๐ก | โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
HashMap<K, V> | โ
| ๐ก | โ
| โ
| โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
BTreeMap<K, V> | โ
| ๐ก | โ
| โ
| โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
| Non-string map keys | โ
| ๐ซ | โ
| ๐ซ | โ
| ๐ซ | ๐ซ | โ | โ | โ |
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
Option<T> | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
| โ
| ๐ก |
Result<T, E> | โ
| ๐ก | ๐ก | ๐ก | โ
| ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
Box<T> | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก |
Rc<T> | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
Arc<T> | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ |
Arc<str> | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
Arc<[T]> | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
chrono | โ
| ๐ก | โ
| ๐ซ | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
time | โ
| ๐ก | โ
| ๐ซ | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
jiff | โ
| ๐ก | ๐ก | ๐ซ | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
uuid | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
ulid | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
camino | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
ordered-float | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
bytes | โ
| ๐ก | ๐ก | ๐ก | โ
| โ
| โ
| ๐ซ | ๐ซ | ๐ซ |
| Type | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
| Named structs | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
|
| Tuple structs | โ
| โ
| โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
|
| Unit structs | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก |
| Representation | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
| Externally tagged (default) | โ
| โ
| โ
| โ
| โ
| โ
| โ
| โ | โ | โ |
Internally tagged (tag=) | โ
| ๐ก | โ
| ๐ซ | ๐ก | ๐ซ | ๐ซ | โ | โ | โ |
Adjacently tagged (tag+content) | โ
| ๐ก | โ
| ๐ซ | ๐ก | ๐ซ | ๐ซ | โ | โ | โ |
| Untagged | โ
| ๐ก | โ
| ๐ซ | ๐ก | ๐ซ | ๐ซ | โ | โ | โ |
Examples (JSON):
| Attribute | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
rename | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
| โ
| ๐ก |
rename_all | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
| ๐ก | ๐ก |
default | โ
| โ
| โ
| โ
| โ
| ๐ก | ๐ก | โ
| โ
| ๐ก |
skip_serializing | โ
| โ
| โ
| ๐ก | ๐ก | ๐ก | ๐ก | โ | โ | ๐ก |
skip_deserializing | โ
| โ
| โ
| ๐ก | ๐ก | โ | โ | ๐ก | ๐ก | โ |
skip_serializing_if | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | โ | โ | ๐ก |
transparent | โ
| โ
| โ
| ๐ก | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ก |
flatten | โ
| โ
| โ
| ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
deny_unknown_fields | โ
| โ
| ๐ก | ๐ก | โ
| โ | โ | ๐ซ | โ
| โ |
deserialize_with | โ
| โ
| ๐ก | ๐ก | ๐ก | โ | โ | ๐ก | ๐ก | โ |
serialize_with | โ
| ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | ๐ก | โ | โ | ๐ก |
type_tag (KDL-specific) | โ | โ
| โ | โ | โ | โ | โ | โ | โ | โ |
| Feature | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
miette::Diagnostic | โ
| โ
| โ
| ๐ก | ๐ซ | ๐ซ | ๐ซ | โ
| ๐ซ | ๐ซ |
Spanned<T> wrapper | โ
| โ
| โ
| ๐ซ | ๐ซ | ๐ซ | ๐ซ | โ
| ๐ซ | ๐ซ |
| Solver integration | โ
| โ
| ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| "Did you mean?" suggestions | โ
| โ
| ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Feature | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
| Nested flatten | โ
| โ
| ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Multiple flattened enums | โ
| โ
| ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Value-based disambiguation | โ
| โ
| ๐ก | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ | ๐ซ |
| Feature | json | kdl | yaml | toml | msgp | asn1 | xdr | args | urlenc | csv |
no_std + alloc | โ
| โ
| โ
(deser) | โ
| ๐ก | โ
| โ
| ๐ก | ๐ก | ๐ก |
| Serialization | โ
| โ
| ๐ซ (needs std) | โ
| โ
| โ
| โ
| โ | โ | โ
|
| Deserialization | โ
| โ
| โ
| โ
| โ
| โ | โ | ๐ก | ๐ก | โ |