Replace a YAML configuration file with Pkl so invalid values are caught at generation time, not at runtime.
Write a shared configuration template that multiple services can extend with their own values.
Configure a Kubernetes deployment using the official Pkl Kubernetes templates.
Read and validate Pkl configuration files directly from a Go or Swift application using the official bindings.
| apple/pkl | mission-peace/interview | jhy/jsoup | |
|---|---|---|---|
| Stars | 11,347 | 11,341 | 11,365 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | moderate | easy |
| Complexity | 3/5 | 2/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Pkl (pronounced "pickle") is a programming language for writing configuration files, created by Apple and released as open source. The problem it solves is that YAML and JSON files, which are widely used for configuration in software projects, have no built-in way to validate their contents. Pkl lets you write configuration with types, constraints, and reusable templates, so errors are caught at generation time rather than when the configuration is applied at runtime. A Pkl file describes a configuration structure that can be checked against rules you define in the language itself. For example, you can specify that a port number must be between 1 and 65535, or that a hostname must match a particular pattern. When you generate the final configuration output, Pkl checks these rules and reports any violations. The output can be formatted as JSON, YAML, or other formats that your existing tools already understand. The language integrates with common development environments. There are editor plugins for VS Code, IntelliJ IDEA, and Neovim that provide syntax highlighting and autocomplete. There are bindings for Go, Swift, and JVM-based languages so Pkl configurations can be read and validated directly from application code. Official Kubernetes templates and Bazel build rules are also available if you work in those ecosystems. The full documentation lives at pkl-lang.org and includes an introduction, a language reference, and worked examples. Contributions, questions, and suggested language improvements are managed through GitHub issues, discussions, and a separate repository called pkl-evolution for larger change proposals. Pkl is an open source project from Apple.
Pkl is a configuration-as-code language from Apple that adds types, validation, and reusable templates to configuration files, outputting to JSON, YAML, or other formats.
Mainly Java. The stack also includes Java, Go, Swift.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.