GitHub - google/jsonnet: Jsonnet - The data templating language (original) (raw)
Jsonnet - The data templating language
For an introduction to Jsonnet and documentation,visit our website.
This repository 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:
Jsonnet is available on MSYS2:
pacman -S mingw-w64-clang-i686-jsonnet
pacman -S mingw-w64-clang-x86_64-jsonnet
pacman -S mingw-w64-i686-jsonnet
pacman -S mingw-w64-x86_64-jsonnet
pacman -S mingw-w64-ucrt-x86_64-jsonnet
The Python binding is on pypi:
You can also download and install Jsonnet using the vcpkgdependency 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:
To build Jsonnet with Clang, run:
make CC=clang CXX=clang++
To run the output binary, run:
To run the reformatter, run:
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 --build build --target run_tests
Contributing
See the contributing page on our website.
Developing Jsonnet
Running tests
To run the comprehensive suite:
Locally serving the website
You need a doc/js/libjsonnet.wasm
which can either be downloaded from the production website:
wget https://jsonnet.org/js/libjsonnet.wasm -O doc/js/libjsonnet.wasm
Or you can build it yourself, which requires checking outgo-jsonnet. See the README.md in that repo for instructions.
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
Then, from the root of the repository you can generate and serve the website usingJekyll (you need version 4.3.0 or later):
This should build and serve the website locally, and automatically rebuild when you change any underlying files.