jrsonnet-evaluator

Interpreter for parsed jsonnet tree

Standard library

jsonnet stdlib is embedded into evaluator, but there is different modes for this:

Because of codegenerated-stdlib compilation slowdown, serialized-stdlib is used by default

Benchmark

Can also be run via cargo bench

```markdown

codegenerated-stdlib

test tests::bench_codegen ... bench: 401,696 ns/iter (+/- 38,521)

serialized-stdlib

test tests::bench_serialize ... bench: 1,763,999 ns/iter (+/- 76,211)

none

test tests::bench_parse ... bench: 7,206,164 ns/iter (+/- 1,067,418) ```

Intrinsics

Some functions from stdlib are implemented as intrinsics

Intrinsic handling

If indexed jsonnet object has field 'intrinsic_namespace' of type 'string', then any not found field/method is resolved as Val::Intrinsic(__intrinsic_namespace__, name)