| Crates.io | cvto |
| lib.rs | cvto |
| version | 0.1.0 |
| created_at | 2025-10-11 18:11:18.238433+00 |
| updated_at | 2025-10-11 18:11:18.238433+00 |
| description | Utility for converting data between structured formats |
| homepage | https://github.com/iMashtak/cvto |
| repository | https://github.com/iMashtak/cvto |
| max_upload_size | |
| id | 1878427 |
| size | 60,863 |
Utility for converting data between structured formats. Currently supports following formats:
You can download pre-built binaries from releases page. Download archive and place the content in your PATH.
Simple conversion with default options requires just the following call:
cvto -i input.json -o output.yaml
cvto automatically detects formats based on file extension. If required it may be set explicitly by passing --in-format or --out-format options:
cvto -i file_with_no_extension -o output.conf --in-format json --out-format yaml
Possible values for --in-format and --out-format are:
jsonyamltomlpropertiesprotobufYou can use stdin as input and stdout as output by not passing -i or (and) -o options, but you need then set --in-format or (and) --out-format options:
cat input.json | cvto --in-format json --out-format yaml > output.yaml
If you need to configure how to serialize and deserialize input and output data, you can provide additional options which have the following naming: {format}-{type}-{name}, where:
format may be:
jsonyamltomlpropertiesprotobuftype may be:
in which means deserialization (how to parse input)out which means serialization (how to write to output)name is actual name of optionJava Properties
properties-in-mode: Processing mode. Possible values:
flat: interprets properties as pure key-value passing it directly to other format representationnested: interprets properties as nested map transforming them into structured view before passing to other format representationproperties-out-kv-separator: Separator to use to determine key and valueProtobuf
protobuf-in-input: Paths to .proto files that will be used as inputsprotobuf-in-include: Paths to directories with .proto filesprotobuf-in-message: Name of the target message typeprotobuf-out-input: Paths to .proto files that will be used as inputsprotobuf-out-include: Paths to directories with .proto filesprotobuf-out-message: Name of the target message typeyj - provides support for JSON, YAML, TOML and HCL. Not maintained in last years.