awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
google avatar

google/jsonnet

0
View on GitHub↗
jsonnet.org↗

Jsonnet

Jsonnet is a structured configuration generation language that extends JSON with variables, conditionals, and object-oriented features to create reusable templates. It is designed to eliminate duplication in configuration data by providing a data templating language that can produce structured output from concise, programmable templates.

The language distinguishes itself through an object-oriented inheritance model that allows field override, mixin composition, and self-referencing for modular configuration reuse. It supports lazy evaluation with thunks to defer computation until values are first accessed, and includes trampoline-based tail call optimization to handle deeply recursive functions without stack overflow. Jsonnet also provides a C-based embedding API with garbage-controlled memory management, import graph resolution for modular templates, and manifest-based serialization that transforms internal representations into multiple output formats.

The project covers capabilities for generating configuration data from templates, eliminating duplicate configuration values through inheritance and self-references, and creating parameterized functions that return objects or values for modular and DRY configuration logic. It includes tools for converting YAML to Jsonnet templates and managing Kubernetes object collections through object-based mappings. The system can produce output in JSON, YAML, INI, XML, and Python literal formats from a single template source.

Jsonnet is available through a C API for host program integration and a Python API for evaluating templates directly from Python code.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Features

  • Structured Config Generators - Generates structured configuration data like JSON, YAML, and INI from concise, reusable templates.
  • Data Configuration Languages - A structured configuration generation language extending JSON with variables, conditionals, and object-oriented features.
  • JSON Serializers - Serializes structured data into JSON documents for consumption by applications and tools.
  • Configuration Inheritance - Reuses and overrides object fields via inheritance and self-references to avoid repeating common configuration values.
  • Configuration Function Generators - Creates parameterized functions that return objects or values for modular and DRY configuration logic.
  • Template Evaluation APIs - Ships a Python API for evaluating Jsonnet templates and returning JSON strings.
  • Reusable Configuration Blocks - Creates parameterized functions that return objects or values for modular and DRY configuration logic.
  • Inheritance-Based Config Deduplication - Eliminates duplicate configuration values through object inheritance and self-referencing.
  • C-Based Embedding APIs - Provides a C-based embedding API for integrating the Jsonnet evaluation engine into host programs.
  • Config Object Generators - Creates parameterized functions that return objects for generating consistent and modular configuration.
  • Object Inheritance - Provides an object-oriented inheritance model with field override, mixin composition, and self-referencing.
  • Config Duplication Eliminators - Eliminates duplicate configuration values through inheritance and self-references.
  • Configuration Data Templates - Generates structured configuration data from reusable templates with object-orientation and functions.
  • Multi-Format Output Converters - Produces configuration in JSON, YAML, INI, and other formats from a single template source.
  • Trampolining - Optimizes recursive function calls using trampolines to avoid stack overflow.
  • Recursive Descent Parsers - Parses the language grammar using a recursive descent parser that builds an abstract syntax tree.
  • Import Callback Systems - Resolves and caches external file imports via a callback system for modular template dependencies.
  • Template-Based Kubernetes Generators - Generates structured JSON configuration for Kubernetes objects from reusable templates.
  • Multi-Format Output Renderers - Renders the same template into JSON, YAML, INI, and other formats simultaneously.
  • Lazy Evaluation - Implements lazy evaluation with thunks to defer computation until values are first accessed.
  • YAML Serializers - Serializes structured data into YAML format for interoperability with YAML-based toolchains.
  • Multi-Format Manifest Serializers - Serializes structured data into JSON, YAML, INI, and XML via manifest functions.
  • Continuous Delivery and GitOps - Language for templating and managing configuration data.
7,522 stars·474 forks·Jsonnet·Apache-2.0·21 views

Star history

Star history chart for google/jsonnetStar history chart for google/jsonnet

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

Frequently asked questions

What does google/jsonnet do?

Jsonnet is a structured configuration generation language that extends JSON with variables, conditionals, and object-oriented features to create reusable templates. It is designed to eliminate duplication in configuration data by providing a data templating language that can produce structured output from concise, programmable templates.

What are the main features of google/jsonnet?

The main features of google/jsonnet are: Structured Config Generators, Data Configuration Languages, JSON Serializers, Configuration Inheritance, Configuration Function Generators, Template Evaluation APIs, Reusable Configuration Blocks, Inheritance-Based Config Deduplication.

Which projects share features with google/jsonnet?

Projects with overlapping indexed features include: renovatebot/renovate — Renovate is a GitOps-driven dependency management engine designed to automate the maintenance of software projects. It… rstudio/rmarkdown — rmarkdown is a dynamic document generator and markdown rendering engine used to create reproducible reports, analysis,… miloyip/json-tutorial — This is an educational tutorial that walks through implementing a complete JSON library from scratch in C. The project… jeremyfa/yaml.js — This library provides a parser and encoder for YAML 1.2 data structures, enabling the transformation of human-readable… jbeder/yaml-cpp — yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing… aaubry/yamldotnet — YamlDotNet is a YAML serialization library and data mapping tool for .NET. It functions as a parser and generator that…

Projects sharing features with Jsonnet

These projects share indexed features with Jsonnet. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • renovatebot/renovaterenovatebot avatar

    renovatebot/renovate

    21,796View on GitHub↗

    Renovate is a GitOps-driven dependency management engine designed to automate the maintenance of software projects. It functions as an automated update tool that scans repository files to identify outdated dependencies, fetches the latest compatible versions from external sources, and generates pull requests to apply those updates. By integrating directly with code hosting platforms, it synchronizes project dependencies through declarative configuration files, ensuring that software components remain current and secure. The project distinguishes itself through its platform-agnostic architectu

    TypeScriptazure-devopsbitbucketdependencies
    View on GitHub↗21,796
  • miloyip/json-tutorialmiloyip avatar

    miloyip/json-tutorial

    7,939View on GitHub↗

    This is an educational tutorial that walks through implementing a complete JSON library from scratch in C. The project covers the full data lifecycle of JSON, including parsing text into structured in-memory representations, validating input against the specification, serializing data back into standard JSON output, and providing structured access to elements within parsed arrays and objects. The implementation is built around a hand-written recursive descent parser that processes JSON text by matching grammar rules to build a structured data tree. Parsed values are stored in a tagged union r

    C
    View on GitHub↗7,939
  • jbeder/yaml-cppjbeder avatar

    jbeder/yaml-cpp

    5,931View on GitHub↗

    yaml-cpp is a C++ library for parsing and emitting YAML 1.2 documents. It provides a complete YAML processing pipeline, from reading YAML content into a traversable node tree to writing in-memory data structures back as YAML text. The library represents parsed YAML as a mutable tree of typed nodes, supporting scalars, sequences, maps, and aliases. It uses a recursive-descent parser to build this node tree, and a stream-based emitter to generate YAML output incrementally. Template-based type conversion enables compile-time serialization between YAML nodes and C++ types, including support for c

    C++
    View on GitHub↗5,931
  • jeremyfa/yaml.jsjeremyfa avatar

    jeremyfa/yaml.js

    886View on GitHub↗

    This library provides a parser and encoder for YAML 1.2 data structures, enabling the transformation of human-readable YAML strings into native JavaScript objects and arrays. It is designed to function as a cross-platform utility, ensuring consistent data processing across both server-side runtimes and client-side browser environments. Beyond its core library functionality, the project includes a command-line interface for automating data conversion tasks. This utility supports bidirectional transformation between YAML and JSON formats, allowing for the programmatic manipulation and exchange

    CoffeeScriptjavascriptjsonjson2yaml
    View on GitHub↗886
  • Compare all 30 related projects→