awesome-repositories.com
博客
awesome-repositories.com

通过 AI 驱动的搜索,发现最优秀的开源仓库。

探索精选搜索开源替代品自托管软件博客网站地图
项目关于排名机制媒体报道MCP 服务器
法律隐私政策服务条款
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/jsonnet

0
View on GitHub↗
7,522 星标·474 分支·Jsonnet·Apache-2.0·4 次浏览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.

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.

Star 历史

google/jsonnet 的 Star 历史图表google/jsonnet 的 Star 历史图表

AI 搜索

探索更多 awesome 仓库

用简单的语言描述您的需求 —— AI 将根据相关性为您从数千个精选开源项目中进行排序。

Start searching with AI

Jsonnet 的开源替代方案

相似的开源项目,按与 Jsonnet 的功能重合度排序。
  • renovatebot/renovaterenovatebot 的头像

    renovatebot/renovate

    21,796在 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
    在 GitHub 上查看↗21,796
  • miloyip/json-tutorialmiloyip 的头像

    miloyip/json-tutorial

    7,939在 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
    在 GitHub 上查看↗7,939
  • jbeder/yaml-cppjbeder 的头像

    jbeder/yaml-cpp

    5,931在 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++
    在 GitHub 上查看↗5,931
  • jeremyfa/yaml.jsjeremyfa 的头像

    jeremyfa/yaml.js

    886在 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
    在 GitHub 上查看↗886
查看 Jsonnet 的所有 30 个替代方案→

常见问题解答

google/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.

google/jsonnet 的主要功能有哪些?

google/jsonnet 的主要功能包括:Structured Config Generators, Data Configuration Languages, JSON Serializers, Configuration Inheritance, Configuration Function Generators, Template Evaluation APIs, Reusable Configuration Blocks, Inheritance-Based Config Deduplication。

google/jsonnet 有哪些开源替代品?

google/jsonnet 的开源替代品包括: 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…