34 个版本
0.6.5 | 2024 年 6 月 15 日 |
---|---|
0.6.2 | 2024 年 5 月 18 日 |
0.5.11 | 2024 年 3 月 2 日 |
0.5.7 | 2023 年 7 月 13 日 |
0.2.6 | 2022 年 3 月 27 日 |
#438 在 编码
每月 32 次下载
115KB
2.5K SLoC
dtl
一个简单的工具,可以从输入编码反序列化数据,转换它,并将它重新序列化到输出编码。
使用 jq
进行数据转换,并需要 rust >= 1.56.0。
安装
请查看 版本页面 以获取预构建版本的 dtl
。
还提供了静态链接的二进制文件:查找文件名中包含 musl
的存档。
从 crates.io
cargo install dts
从源码
克隆仓库并运行
cargo install --locked --path .
用法
dts [<source>...] [-j <jq-expression>] [-O <sink>...]
有关可用标志的完整列表,请参阅帮助
dts --help
示例
将 YAML 转换为 TOML
dts input.yaml -o toml
从子目录加载所有 YAML 文件并将它们合并为一个
dts . --glob '**/*.yaml' output.yaml
使用 jq
表达式转换输入数据
dts tests/fixtures/example.json -j '.users | map(select(.age < 30))'
从文件使用 jq
过滤表达式
dts tests/fixtures/example.json -j @my-filter.jq
从 stdin 读取数据
echo '{"foo": {"bar": "baz"}}' | dts -i json -o yaml
输出颜色和主题
dtl
支持输出着色和语法高亮。着色行为可以通过 --color
标志或 DTS_COLOR
环境变量来控制。
如果您对默认的语法高亮主题不满意,您可以通过 --theme
标志或 DTS_THEME
环境变量来更改它。
可以通过以下方式列出可用主题
dts --list-themes
提示:如果您根本不想有任何颜色,可以在编译时禁用 color
功能。请参阅下面的 功能标志 部分。
支持的编码
目前 dtl
支持以下编码
- JSON
- YAML
- TOML
- JSON5 (仅解序列化)
- CSV
- 查询字符串
- XML
- 文本
- Gron
- HCL (仅解序列化和序列化支持 HCL 属性)
功能标志
要在没有启用默认功能的情况下构建 dts
,请运行
cargo build --no-default-features --release
以下功能标志可用
-
color
:启用彩色输出支持。此功能默认启用。如果您只想默认禁用颜色,并允许条件启用,您还可以设置
NO_COLOR
环境变量或设置DTS_COLOR=never
。 -
jaq
:使用jaq-core
来处理转换过滤器,而不是使用jq
外部命令。此功能默认启用。
许可证
dts 的源代码根据 MIT 许可证发布。有关详细信息,请参阅附带的 LICENSE 文件。
依赖关系
~15–27MB
~432K SLoC