8个版本
0.5.0-pre95 | 2023年8月13日 |
---|---|
0.5.0-pre94 | 2023年7月26日 |
0.5.0-pre9 | 2023年5月15日 |
0.5.0-pre8 | 2023年4月18日 |
0.5.0-pre6 | 2023年1月8日 |
#499 in 模板引擎
230 每月下载量
用于 4 crates
390KB
13K SLoC
jrsonnet
++++
++++// Github sucks: I can't center those images the normal way: https://github.com/github/markup/issues/984 // [.text-center] // // // [.text-center] // -- // // // // --
这是什么
Jsonnet 是一种数据模板语言
此Rust crate实现了Jsonnet库及其基于该库的替代jsonnet
可执行文件。更多信息请见绑定,绑定。
安装
NixOS
jrsonnet 已包含在nixpkgs中并由 @CertainLach 维护
[source,sh]
nix-env -iA nixpkgs.jrsonnet
MacOS
jrsonnet 已打包到brew并由 @messense 维护
[source,sh]
brew install jrsonnet
Windows/其他Linux发行版
您可以在发布版中获取jrsonnet的最新构建版本。
从源码构建
jrsonnet 应该可以在最新的稳定Rust版本上构建(可能是在最旧的版本上,但没有提供MSRV策略)
调试构建也可以工作,但它的速度比发布版本慢得多
[source]
cargo build --release
为什么?
已经有多种不同的语言实现了这个标准的多个实现
- C++;
- Go;
- Scala.
- [NEW] 另一个Rust实现出现.
此实现展示了比所有现有实现都好的性能。更多信息请见[ benchmarks ]。
此外,我还想尝试新的语法特性,而jrsonnet实现了其中一些。更多信息请参见链接:./docs/features.adoc[features]
最终,用Rust实现东西总是很有趣。
绑定 [[bindings]]
Rust
Jrsonnet是用Rust编写的,因此只需将其作为依赖项添加即可
Python
绑定由@messense创建和维护
C/C++
Jrsonnet提供了一个标准的libjsonnet.so
共享库,应该可以作为它的直接替代品使用
其他
WASM绑定也可用,Java绑定(JNI和WASM编译为.class
)正在开发中
更多信息请参见链接:./bindings/[bindings]
依赖项
~6.5MB
~110K SLoC