7 releases
0.4.0 | Sep 22, 2022 |
---|---|
0.3.2 | Sep 7, 2021 |
0.3.1 | Jul 25, 2021 |
0.2.8 | Dec 20, 2020 |
0.2.7 | Nov 17, 2020 |
#2067 in Encoding
35KB
537 lines
yaml2json-rs
yaml2json-rs converts one or more YAML documents into a JSON stream.
There are many implementations of this idea, with various limitations. This one aims for:
- Speed
- Multi-document support
- Error control
- selectively silence errors or output errors as JSON
This implementation relies heavily on the existing work in Serde, yaml-rust and others to provide fast and correct serialization and deserialization. In naïve tests, this provided a significant speed improvement over other implementations, though your mileage may vary.
Installation
Download pre-compiled binaries from the Releases Page.
Or, install via cargo
:
cargo install yaml2json-rs-bin --bin yaml2json
Or, quickly try it out with docker
:
echo "hello: world" | docker run -i nessex/yaml2json-rs:master
Usage
Utility to convert YAML files to JSON
USAGE:
./yaml2json file1.yaml file2.yaml
cat file1.yaml | ./yaml2json
./yaml2json --error=json file1.yaml | jq
FLAGS:
-h, --help Prints help information
-p, --pretty
-V, --version Prints version information
OPTIONS:
-e, --error <error> [default: stderr] [possible values: silent, stderr, json]
ARGS:
<file>... Specify the path to files you want to convert. You can also pass files via stdin instead.
For best results when dealing with multiple documents, pass multiple files in at once by path:
# Be sure to use + and not \; with find
find . -name '*.yaml' -exec yaml2json {} +
Crates
crate | links | description |
---|---|---|
yaml2json-rs-bin | A command line utility to convert YAML to JSON | |
yaml2json-rs | A library wrapping serde-yaml and serde-json to convert a single YAML document to JSON | |
yaml-split | A library providing an iterator over individual YAML documents within a YAML file or stream |
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Support
Please consider supporting the amazing libraries that make this work:
Dependencies
~2.8–4MB
~78K SLoC