#数据编码 #yaml #jq #json #数据转换 #hcl #json-toml

bin+lib dtl

一种在不同编码之间反序列化、转换和序列化数据的工具

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 次下载

MIT 以及可能 LGPL-3.0-or-later

115KB
2.5K SLoC

dtl

Build Status MIT License

一个简单的工具,可以从输入编码反序列化数据,转换它,并将它重新序列化到输出编码。

使用 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