Edit article
This commit is contained in:
parent
23bafa53ba
commit
938e938577
@ -84,9 +84,13 @@ json_string = to_json(parsed_data);
|
||||
|
||||
## Writing Unix Tools for Structured Data
|
||||
|
||||
Rust users are lucky to have [serde], a library that can create in-memory values from data formats and vica versa. If you are compiling a program to be used as a command-line tool, I would urge you to think about how you might use structured data as input and output. [Pandoc], for example, can use a YAML file as an alternative to command-line arguments but I would prefer it to have an additional option to pass that YAML to standard input. In the meantime, it is easy enough to implement pandoc's features in whale by translating a data structure into command line arguments. It is not a perfect solution but it goes a long way to prove that the command line shell is still the gold standard of computing.
|
||||
Rust users are lucky to have [serde], a library that can create in-memory values from data formats and vica versa. If you are compiling a program to be used as a command-line tool, I would urge you to think about how you might use structured data as input and output. [Pandoc], for example, can use a YAML file as an alternative to command-line arguments but I would prefer it to have an additional option to pass that YAML to standard input. In the meantime, it is easy enough to implement pandoc's features in whale by translating a data structure into command line arguments. It is not a perfect solution but it goes a long way to prove that the commacnd line shell is still the gold standard of computing.
|
||||
|
||||
If you are interested in structured data on the command line, [whale] is in its experimental phase and I'm happy to talk more about it. [Nushell] is a more mature example of a command-line shell with structured data and [jq] is an excellent resource for querying JSON.
|
||||
|
||||
[Pandoc]: https://pandoc.org/
|
||||
[serde]: https://serde.rs/
|
||||
[nushell]: https://www.nushell.sh/
|
||||
[whale]: https://git.jeffa.io/jeff/whale
|
||||
[jq]: https://jqlang.github.io/jq/
|
||||
[The Unix Tools Philosophy]: https://tldp.org/LDP/GNU-Linux-Tools-Summary/html/c1089.htm
|
||||
|
Loading…
Reference in New Issue
Block a user