Changelog: * Move the examples data files * Implement a first pass on every data format listed on serde.rs
Description
This tool "traduit" (french for translate) data formats. It was made in the hope to bring serde to the cli (serdi ^^). But that not exaclty what serde is about and I have no affiliation with them so I did not want to namesquat.
Installation
First install the rust toolchain and then execute the following command:
cargo install tradaf
Usage example
Prettify (or minify) some data format for ease of reading (resp: compact and have less data to save/transfert)
tradaf json json --pretty < simple.json
Litterally transcode between data formats
tradaf ron yaml < examples/standard.ron
Transcode into JSON so we can use jq
, do some transformations and then transcode again into another format for viewing
tradaf RON json < examples/gameConfig.ron | jq .key_bindings | tradaf Json yaml
TODOS
- Implement all data formats, or at least the one that expose a serde serializer or deserializer.
- [-] Bencode
- Deserialization
- Serialization
- BSON
- CBOR
- [-] DBus (not sure it is working, but it compile…)
- DynamoDB
- Envy (deserialization only)
- Envy store (deserialization only)
- FlexBuffer
- The
Serializer
andDeserializer
exposed does not work with serde-transcode.
- The
- [-] GVariant => See DBus: the same crate propose both
- HJSON
- JSON
- [-] JSON5
- Deserialization
- Serialization
- https://github.com/Lucretiel/kaydle
- S-Expressions (lisp)
- Pickle
- Test properly both way
- [-] Query String (URL)
- Deserialization
- Serialization
- [-] MessagePack
- Deserialization
- Serialization
- RON
- TOML
- YAML
- …
- [-] Bencode
- Add tests for each serializer and each deserializer (at least one)
- Check if crates have features that we should enable/disable
zvariant
looks to include async runtime by default
- Check my notes for each data format and open an issue on the crates to point problem/present my project and ask for help
- Add proper error handling (find a mentor to explain me propper error management: struct, enum, … and then use anyhow/this_error if needed)
Description
Languages
Rust
97.5%
Shell
2.5%