jsonnet

by google

google /jsonnet

Jsonnet - The data templating language

4.4K Stars 310 Forks Last release: 4 months ago (v0.16.0) Apache License 2.0 1.0K Commits 32 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Jsonnet - The data templating language

Build Status

For an introduction to Jsonnet and documentation, visit our website.

This respositiory contains the original implementation. You can also try go-jsonnet, a newer implementation which in some cases is orders of magnitude faster.

Visit our discussion forum.

Packages

Jsonnet is available on Homebrew:

brew install jsonnet

The Python binding is on pypi:

pip install jsonnet

You can also download and install Jsonnet using the vcpkg dependency manager:

git clone https://github.com/Microsoft/vcpkg.git
cd vcpkg
./bootstrap-vcpkg.sh
./vcpkg integrate install
vcpkg install jsonnet

The Jsonnet port in vcpkg is kept up to date by Microsoft team members and community contributors. If the version is out of date, please create an issue or pull request on the vcpkg repository.

Building Jsonnet

You can use either GCC or Clang to build Jsonnet. Note that on recent versions of macOS,

/usr/bin/gcc
and
/usr/bin/g++
are actually Clang, so there is no difference.

Makefile

To build Jsonnet with GCC, run:

make

To build Jsonnet with Clang, run:

make CC=clang CXX=clang++

To run the output binary, run:

./jsonnet

To run the reformatter, run:

./jsonnetfmt

Bazel

Bazel builds are also supported. Install Bazel if it is not installed already. Then, run the following command to build with GCC:

bazel build -c opt //cmd:all

To build with Clang, use one of these two options:

env CC=clang CXX=clang++ bazel build -c opt //cmd:all

OR

bazel build -c opt --action_env=CC=clang --action_env=CXX=clang++ //cmd:all

This builds the

jsonnet
and
jsonnetfmt
targets defined in
cmd/BUILD
. To launch the output binaries, run:
bazel-bin/cmd/jsonnet
bazel-bin/cmd/jsonnetfmt

Cmake

cmake . -Bbuild
cmake --build build --target run_tests

Contributing

See the contributing page on our website.

Developing Jsonnet

Running tests

To run the comprehensive suite:

make test

Locally serving the website

You need a

doc/js/libjsonnet.js
which can either be downloaded from the production website:
wget https://jsonnet.org/js/libjsonnet.js -O doc/js/libjsonnet.js

Or you can build it yourself, which requires emscripten):

make doc/js/libjsonnet.js

Then, from the root of the repository you can generate and serve the website using Jekyll:

tools/scripts/serve_docs.sh

This should the website on localhost:8200, automatically rebuild when you change any underlying files, and automatically refresh your browser when that happens.

The standard library is documented in a structured format in

doc/_stdlib_gen/stdlib-content.jsonnet
. The HTML (input for Jekyll) is regenerated using the following command:
tools/scripts/update_web_content.sh

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.