go-jsonnet
jrsonnet
go-jsonnet | jrsonnet | |
---|---|---|
2 | 3 | |
1,639 | 312 | |
1.3% | - | |
7.0 | 8.5 | |
4 months ago | 13 days ago | |
Go | Rust | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
go-jsonnet
-
The Dhall Configuration Language
> jsonnet seemed like a great idea to me, but I've experienced extremely low performance.
Although each implementation of jsonnet has some quirks, take a look at (scala-based) sjsonnet^1 or go-jsonnet^2 for improved performance. We use go-jsonnet because of some issues we had with the scala version - but it does seem to be the fastest by a large margin.
There's also a Rust version^3 that claims to be the fastest yet^4, but I haven't experimented with it at all.
[1]: https://github.com/databricks/sjsonnet
[2]: https://github.com/google/go-jsonnet/
[3]: https://github.com/CertainLach/jrsonnet
[4]: https://gist.github.com/CertainLach/5770d7ad4836066f8e0bd91e...
-
Is GO a good option to write a compiler/interpreter?
While I never wrote one, there are some good examples out there beyond the Go compiler itself. Have a look at the Benthos bloblang one (which is quite simple): https://github.com/Jeffail/benthos/tree/master/internal/bloblang and the go-jsonnet VM one (which is more complex): https://github.com/google/go-jsonnet
jrsonnet
-
What config format do you prefer?
Jsonnet does all that you wanted in your ideal config language, and has a rust implementation too: https://github.com/CertainLach/jrsonnet
-
The Dhall Configuration Language
> jsonnet seemed like a great idea to me, but I've experienced extremely low performance.
Although each implementation of jsonnet has some quirks, take a look at (scala-based) sjsonnet^1 or go-jsonnet^2 for improved performance. We use go-jsonnet because of some issues we had with the scala version - but it does seem to be the fastest by a large margin.
There's also a Rust version^3 that claims to be the fastest yet^4, but I haven't experimented with it at all.
[1]: https://github.com/databricks/sjsonnet
[2]: https://github.com/google/go-jsonnet/
[3]: https://github.com/CertainLach/jrsonnet
[4]: https://gist.github.com/CertainLach/5770d7ad4836066f8e0bd91e...
What are some alternatives?
Benthos - Fancy stream processing made operationally mundane [Moved to: https://github.com/redpanda-data/connect]
kubernetes-mixin - A set of Grafana dashboards and Prometheus alerts for Kubernetes.
starlark-go - Starlark in Go: the Starlark configuration language, implemented in Go
dhall-aws-cloudformation - Typecheck, template and modularize your AWS CloudFormation with Dhall
mina - Mina is a cryptocurrency protocol with a constant size blockchain, improving scaling while maintaining decentralization and security.
sjsonnet
participle - A parser library for Go
dhall-manual - The Dhall Configuration Language Manual
oils - Oils is our upgrade path from bash to a better language and runtime. It's also for Python and JavaScript users who avoid shell!