All Projects → CertainLach → jrsonnet

CertainLach / jrsonnet

Licence: MIT License
Rust implementation of Jsonnet language

Programming Languages

rust
11053 projects
Jsonnet
166 projects
c
50402 projects - #5 most used programming language
javascript
184084 projects - #8 most used programming language
Makefile
30231 projects
Nix
1067 projects

Projects that are alternatives of or similar to jrsonnet

js-ziju
Compile javascript to LLVM IR, x86 assembly and self interpreting
Stars: ✭ 112 (-31.71%)
Mutual labels:  interpreter
zeta-lang
The Zeta Programming langauge
Stars: ✭ 34 (-79.27%)
Mutual labels:  interpreter
frobtads
Linux and macOS development tools and text-mode interpreter for TADS adventure games.
Stars: ✭ 41 (-75%)
Mutual labels:  interpreter
go-jdk
Run JVM-based code in Go efficiently
Stars: ✭ 61 (-62.8%)
Mutual labels:  interpreter
retro12
This repo is retired. See http://forthworks.com:8000/
Stars: ✭ 18 (-89.02%)
Mutual labels:  interpreter
pip
Pip: an imperative code-golf language
Stars: ✭ 22 (-86.59%)
Mutual labels:  interpreter
free-monads-functional-web-apps
Delving into Free Monads and using them to write pure functional web applications
Stars: ✭ 18 (-89.02%)
Mutual labels:  interpreter
fizzboom
Benchmark to compare async web server + interpreter + web client implementations across various languages
Stars: ✭ 46 (-71.95%)
Mutual labels:  interpreter
Square
The Square Programming Language. A tiny programming language under 200kb.
Stars: ✭ 23 (-85.98%)
Mutual labels:  interpreter
interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-80.49%)
Mutual labels:  interpreter
cosy
A simple and pleasant programming language.
Stars: ✭ 21 (-87.2%)
Mutual labels:  interpreter
hopes
Higher Order Prolog with Extensional Semantics
Stars: ✭ 43 (-73.78%)
Mutual labels:  interpreter
warpy
WebAssembly interpreter in RPython
Stars: ✭ 54 (-67.07%)
Mutual labels:  interpreter
chickadee
Chickadee is a minimal programming language implemented in TypeScript for teaching purposes.
Stars: ✭ 13 (-92.07%)
Mutual labels:  interpreter
ATS-blockchain
⛓️ Blockchain + Smart contracts from scratch
Stars: ✭ 18 (-89.02%)
Mutual labels:  interpreter
boba-js
Toy programming language. Now being reimplemented in Rust: https://github.com/poteto/monkers
Stars: ✭ 22 (-86.59%)
Mutual labels:  interpreter
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-89.02%)
Mutual labels:  interpreter
ciforth
A generic system for creating i86 implementations of the language Forth.
Stars: ✭ 38 (-76.83%)
Mutual labels:  interpreter
hedgehog
a toy programming language
Stars: ✭ 24 (-85.37%)
Mutual labels:  interpreter
sebasic4
SE Basic IV 4.2 Cordelia - A free BASIC interpreter written in Z80 assembly language
Stars: ✭ 44 (-73.17%)
Mutual labels:  interpreter

jrsonnet

release license opencollective

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.

In the end, it's always fun to implement something in Rust.

Bindings

Rust

crates.io docs.rs

Jrsonnet is written in rust itself, so just add it as dependency

Python

crates.io

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.

Benchmarks

This is the fastest implementation of jsonnet both according to official benchmarks and real-life cluster configuration templating speed.

Official benchmark results are available in this gist which may get updated sometimes. It shows tests against Golang, C++ and Scala implementations showing the best performance in all cases.

You can generate this report via provided nix flake

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].