A Serde-based document converter.
You can install reserde
using Cargo:
cmd
cargo install reserde
sh
reserde --help
```txt
Usage: reserde.exe [--if Transcode a self-describing format into a different format. Currently supports Bencode, Bincode (--out only), CBOR, JSON (--pretty), TAML (--in only), XML, x-www-form-urlencoded (as urlencoded) and YAML. All names are lowercase. Options:
--if where to read input from. Defaults to stdin
--of where to write output to. Defaults to stdout
-i, --in what to read
-o, --out what to write
-p, --pretty pretty-print (where supported)
-s, --stringify stringify bytes and non-string value keys into strings where
possible, possible values are: utf8. (Tries encodings in the
order specified.) [try with: --in bencode]
--enum-bools case-insensitively convert unit variants with name Output (excerpt): ```taml // Sewer "$sewer/ambdrips", 0.8
"$sewer/ambflies", 0.1
"$sewer/amb_hum", 0.05 // postfix comment sound: "$sewer/moments/*"
layers: 1
first-interval-no-min: true
interval-range: (10, 60)
volume-range: (0.1, 0.15)
soundscapes:
- loops:
- sound: $sewer/ambdrips
volume: 0.8
- sound: $sewer/ambflies
volume: 0.1
- sound: $sewer/amb_hum
volume: 0.05
moments:
- sound: $sewer/moments/*
layers: 1
first-interval-no-min: true
interval-range:
- 10
- 60
volume-range:
- 0.1
- 0.15
"spaced ` identifier": asdhasd kjhdajkh
``` (Comments are generally stripped, as they can't be sent across Serde's interface.) ```taml field1: true
field2: false Tuple(1, 2, 3)
Unit
EmptyTuple()
``` Licensed under either of at your option. Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions. This includes the Rust version requirement specified above. Which versions are affected by features and patches can be determined from the respective headings in CHANGELOG.md.true
or
false
into booleans.
--help display usage information
```Examples
Converting a
.torrent
filesh
reserde -i bencode -o json --stringify utf8 --if manjaro-xfce-21.0.7-210614-linux510.iso.torrent
json
{
"announce": "udp://tracker.opentrackr.org:1337",
"created by": "mktorrent 1.1",
"creation date": 1623684209,
"info": {
"length": 2600828928,
"name": "manjaro-xfce-21.0.7-210614-linux510.iso",
"piece length": 2097152,
"pieces": [
128,
236,
36,
37,
10,
…
]
},
"url-list": "https://download.manjaro.org/xfce/21.0.7/mfce/21.0.7/manjaro-xfce-21.0.7-210614-linux51anjaro-xfce-21.0.7-210614-linux510.iso"
}
TAML to YAML
sh
reserde -i taml -o yaml
[soundscapes]
[[loops].{sound, volume}]
[moments]
spaced \
identifier`: "asdhasd kjhdajkh"
``````yaml
TAML to XML
sh
reserde -i taml -o xml
[enums]: Structured
[[enums]]
xml
<enums><Structured field_1="true" field_2="false"/><Tuple>1</Tuple><Tuple>2</Tuple><Tuple>3</Tuple><Unit/></enums>
License
Contribution
Code of Conduct
Changelog
Versioning
reserde
strictly follows Semantic Versioning 2.0.0 with the following exceptions:
Consider it the global feature level.
Consider it the global patch level.
Earlier Rust versions may be compatible, but this can change with minor or patch releases.