jrsonnet
What is it
Jsonnet is a data templating language
This Rust crate implements both jsonnet library and an alternative jsonnet
executable based on it. For more information see bindings.
Install
NixOS
jrsonnet is packaged in nixpkgs and maintained by @CertainLach
nix-env -iA nixpkgs.jrsonnet
MacOS
jrsonnet is packaged to brew and maintained by @messense
brew install jrsonnet
Windows/other linux distributions
You can get latest build of jrsonnet in releases
Build from sources
jrsonnet should build on latest stable Rust version (probally on olders, but there is no MSRV policy provided)
Debug build will work too, but it is much slower than release
cargo build --release
Why?
There already are multiple implementations of this standard implemented in different languages: C++, Go, Scala.
This implementation shows performance better than all existing implementations. For more information see benchmarks.
Also, I wanted to experiment on new syntax features, and jrsonnet implements some of them. For more information see features
In the end, it's always fun to implement something in Rust.
Bindings
Rust
Jrsonnet is written in rust itself, so just add it as dependency
Python
Bindings are created and maintained by @messense
C/C++
Jrsonnet provides a standard libjsonnet.so
shared library and should work as drop-in replacement for it
Other
WASM bingings are also available, Java bindings (Both JNI and WASM compiled to .class) are in progress
See bindings for more information.