dts

Crates.iodts
lib.rsdts
version0.6.5
sourcesrc
created_at2022-03-04 22:44:05.501845
updated_at2024-06-15 10:33:09.59433
descriptionA tool to deserialize, transform and serialize data between different encodings
homepage
repositoryhttps://github.com/martinohmann/dts
max_upload_size
id543698
size264,949
(martinohmann)

documentation

https://docs.rs/dts/

README

dts

Build Status MIT License

A simple tool to deserialize data from an input encoding, transform it and serialize it back into an output encoding.

Uses jq for data transformation and requires rust >= 1.56.0.

Installation

Check out the releases page for prebuilt versions of dts.

Statically-linked binaries are also available: look for archives with musl in the filename.

From crates.io

cargo install dts

From source

Clone the repository and run:

cargo install --locked --path .

Usage

dts [<source>...] [-j <jq-expression>] [-O <sink>...]

For a full list of available flags consult the help:

dts --help

Examples

Convert YAML to TOML:

dts input.yaml -o toml

Load all YAML files from sub directories and merge them into one:

dts . --glob '**/*.yaml' output.yaml

Transform the input data using a jq expression:

dts tests/fixtures/example.json -j '.users | map(select(.age < 30))'

Use jq filter expression from a file:

dts tests/fixtures/example.json -j @my-filter.jq

Read data from stdin:

echo '{"foo": {"bar": "baz"}}' | dts -i json -o yaml

Output colors and themes

dts supports output coloring and syntax highlighting. The coloring behaviour can be controlled via the --color flag or DTS_COLOR environment variable.

If the default theme used for syntax highlighting does not suit you, you can change it via the --theme flag or DTS_THEME environment variable.

Available themes can be listed via:

dts --list-themes

Hint: The color feature can be disabled at compile time if you don't want to have colors at all. See the feature flags section below.

Supported Encodings

Right now dts supports the following encodings:

  • JSON
  • YAML
  • TOML
  • JSON5 (deserialize only)
  • CSV
  • QueryString
  • XML
  • Text
  • Gron
  • HCL (deserialize, serialize only supports HCL attributes)

Feature flags

To build dts without its default features enabled, run:

cargo build --no-default-features --release

The following feature flags are available:

  • color: Enables support for colored output. This feature is enabled by default.

    If you just want to disable colors by default with the option to enable them conditionally, you can also set the NO_COLOR environment variable or set DTS_COLOR=never.

  • jaq: Use jaq-core to process transformation filters instead of shelling out to jq. This feature is enabled by default.

License

The source code of dts is released under the MIT License. See the bundled LICENSE file for details.

Commit count: 513

cargo fmt