4 个版本
0.0.4 | 2021 年 10 月 21 日 |
---|---|
0.0.3 | 2021 年 10 月 21 日 |
0.0.2 | 2021 年 8 月 1 日 |
0.0.1 | 2020 年 8 月 26 日 |
在 编码 中排名 #976
23KB
429 行(不包括注释)
reserde
基于 Serde 的文档转换器。
安装
您可以使用 Cargo 安装 reserde
cargo install reserde
用法
reserde --help
reserde 0.0.4
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.
USAGE:
reserde.exe [FLAGS] [OPTIONS] --in <in-format> --out <out-format>
FLAGS:
--enum-bools
case-insensitively convert unit variants with name `true` or `false` into booleans
-h, --help
Prints help information
-p
pretty-print (where supported)
-V, --version
Prints version information
OPTIONS:
--if <in-file>
where to read input from. Defaults to stdin
-i, --in <in-format>
what to read [possible values: bencode, cbor, json, taml, urlencoded, xml, yaml]
--of <out-file>
where to write output to. Defaults to stdout
-o, --out <out-format>
what to write [possible values: bencode, bincode, cbor, json, urlencoded, xml, yaml]
-s <stringify>...
stringify bytes and non-string value keys into strings where possible. (Tries encodings in the order
specified.) [try with: --in bencode] [possible values: utf8]
示例
转换 .torrent
文件
reserde -i bencode -o json --stringify utf8 --if manjaro-xfce-21.0.7-210614-linux510.iso.torrent
输出(摘录)
{
"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 转换 YAML
reserde -i taml -o yaml
# [soundscapes]
// Sewer
## [[loops].{sound, volume}]
"$sewer/amb_drips", 0.8
"$sewer/amb_flies", 0.1
"$sewer/amb_hum", 0.05 // postfix comment
## [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"
---
soundscapes:
- loops:
- sound: $sewer/amb_drips
volume: 0.8
- sound: $sewer/amb_flies
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
(注释通常会被删除,因为它们无法通过 Serde 的接口传输。)
TAML 转换 XML
reserde -i taml -o xml
# [enums]: Structured
field_1: true
field_2: false
# [[enums]]
Tuple(1, 2, 3)
Unit
EmptyTuple()
<enums><Structured field_1="true" field_2="false"/><Tuple>1</Tuple><Tuple>2</Tuple><Tuple>3</Tuple><Unit/></enums>
许可证
在以下任一许可证下发布:
- Apache 许可证 2.0(《LICENSE-APACHE》或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT 许可证(《LICENSE-MIT》或 http://opensource.org/licenses/MIT)
供您选择。
贡献
除非您明确声明,否则您有意提交的任何贡献,按照 Apache-2.0 许可证定义,应作为上述双许可发布,不附加任何额外条款或条件。
有关更多信息,请参阅 CONTRIBUTING。
行为准则
变更日志
版本控制
reserde
严格遵循 语义版本控制 2.0.0,但有以下例外
- 在主版本变更时,次要版本不会重置为 0(除了 v1)。
将其视为全局功能级别。 - 在主版本或次要版本变更时,补丁版本不会重置为 0(除了 v0.1 和 v1)。
将其视为全局补丁级别。
这包括上述指定的 Rust 版本要求。
早期 Rust 版本可能兼容,但可能在次要版本或补丁版本中发生变化。
受功能和补丁影响的版本可以通过 CHANGELOG.md 中的相应标题确定。
请注意,此包的依赖项可能具有更宽容的 MSRV 政策!如果您不手动生成 Cargo.lock(或必要时生成)并且需要支持比当前稳定版本更旧的编译器,请在您的自动化中使用 cargo +nightly update -Z minimal-versions
。
依赖项
~9.5MB
~150K SLoC