pkl README

The project's README from github.com/apple/pkl. As one markdown file: README.md.

= image:.idea/icon.svg[Pkl,30] Pkl

:uri-homepage: https://pkl-lang.org :uri-docs: {uri-homepage}/main/current :uri-docs-introduction: {uri-docs}/introduction :uri-docs-release-notes: {uri-docs}/release-notes :uri-docs-language: {uri-docs}/language :uri-docs-tools: {uri-docs}/tools :uri-github-issue: https://github.com/apple/pkl/issues :uri-github-discussions: https://github.com/apple/pkl/discussions :uri-pkl-examples: https://pkl-lang.org/main/current/examples.html :uri-installation: https://pkl-lang.org/main/current/pkl-cli/index.html#installation :uri-lang-reference: https://pkl-lang.org/main/current/language-reference/index.html :uri-ci-artifacts: https://s01.oss.sonatype.org/content/groups/public/org/pkl-lang/ :uri-ci-pipeline: https://github.com/apple/pkl/actions

A configuration as code language with rich validation and tooling.

== Quick Links

== Documentation

== Community

We'd love to hear from you!

== Development

image:https://github.com/apple/pkl/actions/workflows/main.yml/badge.svg?style=svg["Build (main)", link="https://github.com/apple/pkl/actions/workflows/main.yml"]

== Pkl GitHub Repositories

[%autowidth] |=== |Name |Description

|apple/pkl |A configuration as code language with rich validation and tooling.

|https://github.com/apple/pkl-evolution[`apple/pkl-evolution`] |Suggested Pkl Improvements, Changes, or Enhancements (SPICEs)

|https://github.com/apple/pkl-go[`apple/pkl-go`] |Pkl bindings for the Go programming language

|https://github.com/apple/pkl-go-examples[`apple/pkl-go-examples`] |Examples for using Pkl within Go applications

|https://github.com/apple/highlightjs-pkl[`apple/highlightjs-pkl`] |Highlight.js syntax highlighting for Pkl

|https://github.com/apple/pkl-intellij[`apple/pkl-intellij`] |JetBrains editor plugins providing Pkl language support

|https://github.com/apple/pkl-jvm-examples[`apple/pkl-jvm-examples`] |Examples for using Pkl within JVM applications

|https://github.com/apple/pkl-k8s[`apple/pkl-k8s`] |Templates for using Pkl with Kubernetes

|https://github.com/apple/pkl-k8s-examples[`apple/pkl-k8s-examples`] |Examples for using Pkl with Kubernetes

|https://github.com/apple/pkl-lang.org[`apple/pkl-lang.org`] |The pkl-lang.org website

|https://github.com/apple/pkl-lsp[`apple/pkl-lsp`] |Language server for Pkl, implementing the server-side of the Language Server Protocol

|https://github.com/apple/pkl-neovim[`apple/pkl-neovim`] |Pkl language support for Neovim

|https://github.com/apple/pkl-package-docs[`apple/pkl-package-docs`] |Documentation for Pkl packages

|https://github.com/apple/pkl-pantry[`apple/pkl-pantry`] |Shared Pkl packages

|https://github.com/apple/pkl-project-commons[`apple/pkl-project-commons`] |Utility libraries for Pkl

|https://github.com/apple/pkl-readers[`apple/pkl-readers`] |Shared Pkl https://pkl-lang.org/main/current/language-reference/index.html#external-readers[external reader] tools

|https://github.com/apple/pkl-spring[`apple/pkl-spring`] |Spring Boot extension for configuring Boot apps with Pkl

|https://github.com/apple/pkl-swift[`apple/pkl-swift`] |Pkl bindings for the Swift programming language

|https://github.com/apple/pkl-swift-examples[`apple/pkl-swift-examples`] |Examples for using Pkl within Swift applications

|https://github.com/apple/pkl-vscode[`apple/pkl-vscode`] |Pkl language support for VS Code

|https://github.com/apple/pkl.tmbundle[`apple/pkl.tmbundle`] |TextMate bundle for Pkl

|https://github.com/apple/tree-sitter-pkl[`apple/tree-sitter-pkl`] |Tree-sitter parser for Pkl

|https://github.com/apple/rules_pkl[`apple/rules_pkl`] |Bazel build rules for Pkl |===

pkl (apple/pkl)

Searching Database…

11.5K ·GitHub
What is this?Pkl (pronounced Pickle) is a configuration-as-code language created by Apple, built for writing config with rich validation and tooling support.
Is it a language, or a tool I run?It is a programming language of its own, with an interpreter, CLI, and tooling ecosystem (editor plugins, language server, build rules) built around it, plus bindings to generate Go, Java, Swift, Kotlin, etc. code from Pkl configs.
How do I get started with it?Install Pkl via the Installation guide linked in the docs, then start writing .pkl files and evaluate them with the Pkl CLI or one of the language bindings.
Do I need Java to use Pkl?The core evaluator/CLI is implemented in Java, but Pkl ships its own native/standalone distributions too and you don't necessarily need a JVM installed yourself depending on the distribution you pick.
Does it only work with one language ecosystem?No, Pkl has bindings for Go, Java/JVM, Swift, and a Spring Boot extension, plus editor support for JetBrains, VS Code, and Neovim, so it's designed to integrate across multiple ecosystems rather than lock you into one.
Can Pkl output to formats like JSON or YAML?Yes, Pkl is designed to generate and validate structured config, and its ecosystem includes tooling for working with properties, XML, JSON, and YAML output formats as listed in its GitHub topics.
Is there editor support for writing Pkl?Yes, there are official plugins for JetBrains IDEs, VS Code, Neovim, plus a TextMate bundle and Tree-sitter grammar, and a full Language Server implementing LSP.
Can I use Pkl with Kubernetes?Yes, Apple maintains dedicated templates and examples repositories for using Pkl to configure Kubernetes resources.
Where can I find real usage examples?The pkl-lang.org Examples page linked from this repo has sample projects, and there are separate example repos for using Pkl within Go, JVM, and Swift applications.
What are similar projects?yq, open-ontologies, ruby, kustomize, crystal, morloc, libfyaml, rust
Creator
apple
Size
10.2 MB
Stars
11.5K
Age
2y
Commits · 90 Days