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
Что это такое?Pkl (произносится «пикл») — это язык описания конфигураций как кода, созданный компанией Apple. Он предназначен для написания конфигураций с развитой проверкой и поддержкой инструментов.
Это язык или программа, которую нужно запускать?Это самостоятельный язык программирования. Вокруг него есть интерпретатор, CLI и набор инструментов: плагины для редакторов, языковой сервер, правила сборки. Также есть биндинги, которые генерируют код на Go, Java, Swift, Kotlin и других языках из конфигураций Pkl.
С чего начать?Установите Pkl по инструкции Installation guide, ссылка на которую есть в документации. Затем начните писать файлы .pkl и запускайте их через Pkl CLI или один из языковых биндингов.
Нужна ли Java, чтобы пользоваться Pkl?Ядро вычислителя и CLI написаны на Java. Но у Pkl есть и собственные нативные (самостоятельные) сборки, поэтому в зависимости от выбранной сборки JVM устанавливать самостоятельно не обязательно.
Работает ли он только с одной экосистемой языков?Нет. У Pkl есть биндинги для Go, Java/JVM и Swift, а также расширение для Spring Boot. Есть поддержка редакторов JetBrains, VS Code и Neovim. Поэтому он рассчитан на интеграцию с несколькими экосистемами, а не на привязку к одной.
Может ли Pkl выводить данные в форматы вроде JSON или YAML?Да. Pkl предназначен для генерации и проверки структурированных конфигураций. В его экосистеме есть инструменты для работы с форматами properties, XML, JSON и YAML, которые перечислены в темах (topics) репозитория на GitHub.
Есть ли поддержка редакторов для написания Pkl?Да. Есть официальные плагины для сред JetBrains, VS Code и Neovim, а также пакет TextMate, грамматика Tree-sitter и полноценный языковой сервер, реализующий LSP.
Можно ли использовать Pkl с Kubernetes?Да. Apple поддерживает отдельные репозитории с шаблонами и примерами, которые показывают, как с помощью Pkl настраивать ресурсы Kubernetes.
Где найти реальные примеры использования?На странице Examples сайта pkl-lang.org, ссылка на которую есть в этом репозитории, есть примеры проектов. Также есть отдельные репозитории с примерами использования Pkl в приложениях на Go, JVM и Swift.
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