Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: asciidoc'ify all md's except for the generated one #131

Merged
merged 1 commit into from
Sep 22, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
= jrsonnet

image:https://img.shields.io/github/v/tag/CertainLach/jrsonnet?color=%23fb4934&label=latest%20release&style=for-the-badge[alt=release, link=https://github.com/CertainLach/jrsonnet/releases]
image:https://img.shields.io/github/license/CertainLach/jrsonnet?color=%2383a598&label=license&style=for-the-badge[alt=license, ./LICENSE]
image:https://img.shields.io/opencollective/all/jrsonnet?color=%238ec07c&style=for-the-badge[alt=opencollective, link=https://opencollective.com/jrsonnet]

== What is it

https://jsonnet.org/[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](#Bindings).

== Install

=== NixOS

jrsonnet is packaged in nixpkgs and maintained by @CertainLach

[source,sh]
----
nix-env -iA nixpkgs.jrsonnet
----

=== MacOS

jrsonnet is packaged to brew and maintained by @messense

[source,sh]
----
brew install jrsonnet
----

=== Windows/other linux distributions

You can get latest build of jrsonnet in https://github.com/CertainLach/jrsonnet/releases[releases].

=== Build from sources

jrsonnet should build on latest stable Rust version (probably on the oldest, but there is no MSRV policy provided)

Debug build will work too, but it is much slower than release

[source]
----
cargo build --release
----

== Why?

There already are multiple implementations of this standard implemented in different languages:

* https://github.com/google/jsonnet[C++];
* https://github.com/google/go-jsonnet/[Go];
* https://github.com/databricks/sjsonnet[Scala].

This implementation shows performance better than all existing implementations.
For more information see link:./docs/benchmarks.md[benchmarks]

Also, I wanted to experiment on new syntax features, and jrsonnet implements some of them.
For more information see link:./docs/features.adoc[features]

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

== Bindings

=== Rust

image:https://img.shields.io/crates/v/jrsonnet-evaluator[alt=crates.io, link=https://crates.io/crates/jrsonnet-evaluator]
image:https://docs.rs/jrsonnet-evaluator/badge.svg[alt=docs.rs, link=https://docs.rs/jrsonnet-evaluator]

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

=== Python

image:https://img.shields.io/pypi/v/rjsonnet[alt=crates.io, link=https://pypi.org/project/rjsonnet/]

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 link:./bindings/[bindings] for more information.
78 changes: 0 additions & 78 deletions README.md

This file was deleted.

16 changes: 9 additions & 7 deletions bindings/README.md → bindings/README.adoc
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
# Native bindings
= Native bindings

Bindings are implemented in form of standard libjsonnet.so implementation
Bindings are implemented in form of standard libjsonnet.so implementation.

Headers are described in `c/libjsonnet.h`, this file is exact copy from `C` implementation of jsonnet, plus additional jrsonnet-specific methods
Headers are described in `c/libjsonnet.h`, this file is exact copy from `C` implementation of jsonnet,
plus additional jrsonnet-specific methods.

Bindings should work as drop-in replacement for standard impl
Bindings should work as drop-in replacement for standard impl.

## Building Linux .so library on MacOS
== Building Linux .so library on MacOS

You can use `cross-rs` to do so:

```console
[source,console]
----
cargo install cross --git https://github.com/cross-rs/cross
cross build --release -p libjsonnet --target x86_64-unknown-linux-gnu
```
----
1 change: 1 addition & 0 deletions bindings/jsonnet/README.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
= libjsonnet.so implemented in Rust
1 change: 0 additions & 1 deletion bindings/jsonnet/README.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# jrsonnet-evaluator
= jrsonnet-evaluator

Interpreter for parsed jsonnet tree
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# jrsonnet-parser
= jrsonnet-parser

Parser for jsonnet language
Loading
Loading