À propos du projet

Pkl est un langage de configuration-as-code créé par Apple, conçu pour apporter l'expressivité et la validation des langages de programmation aux fichiers de configuration. Au lieu d'écrire des fichiers YAML, JSON ou de propriétés statiques, les utilisateurs écrivent des programmes Pkl qui produisent une sortie de configuration, avec vérification de types, contraintes et modèles réutilisables. Le dépôt est l'implémentation principale du langage. Il fournit une interface en ligne de commande (CLI) pour évaluer les fichiers Pkl et les rendre dans des formats tels que JSON, YAML, et autres. Le langage prend en charge une validation riche, de sorte que les valeurs invalides ou hors limites peuvent être détectées avant que la configuration ne soit appliquée. La documentation couvre une introduction, une référence du langage, les outils, des exemples et les notes de version. Un écosystème de dépôts compagnons étend Pkl à de nombreux environnements. Des liaisons de langage existent pour Go et Swift, et il y a des exemples pour utiliser Pkl dans des applications Go, JVM et Swift. Une extension Spring Boot permet de configurer des applications Boot avec Pkl. Les utilisateurs de Kubernetes disposent de modèles et d'exemples, et des règles de construction Bazel sont disponibles. Le support des éditeurs et des outils comprend un serveur de langage implémentant le protocole Language Server Protocol, des plugins pour les IDE JetBrains et VS Code, un support Neovim, un bundle TextMate, un analyseur Tree-sitter, et une coloration syntaxique Highlight.js. Des paquets partagés et des bibliothèques utilitaires sont publiés via les dépôts pkl-pantry et pkl-project-commons, et des outils de lecture externes vivent dans pkl-readers. Le projet est développé ouvertement sur GitHub, avec des problèmes et des discussions GitHub pour les questions de la communauté. Des directives de contribution et des instructions de construction sont fournies dans le dépôt, et des pipelines CI publient des artefacts dans un dépôt Sonatype. Les changements de langage suggérés sont suivis via le dépôt pkl-evolution sous forme de SPICEs.