इस प्रोजेक्ट के बारे में

Pkl Apple द्वारा बनाई गई एक configuration-as-code भाषा है, जिसे configuration फ़ाइलों में programming-language की अभिव्यक्ति और validation लाने के लिए डिज़ाइन किया गया है। स्थिर YAML, JSON या property फ़ाइलें लिखने के बजाय, उपयोगकर्ता Pkl प्रोग्राम लिखते हैं जो configuration आउटपुट उत्पन्न करते हैं, साथ में type checking, constraints और पुन: प्रयोज्य templates होते हैं। यह repository भाषा का मुख्य implementation है। यह Pkl फ़ाइलों को evaluate करने और उन्हें JSON, YAML और अन्य जैसे formats में render करने के लिए एक CLI प्रदान करता है। भाषा समृद्ध validation का समर्थन करती है, इसलिए अमान्य या सीमा से बाहर के मान configuration लागू होने से पहले पकड़े जा सकते हैं। Documentation में परिचय, भाषा संदर्भ, tooling, उदाहरण और release notes शामिल हैं। साथी repositories का एक ecosystem Pkl को कई वातावरणों तक विस्तारित करता है। Go और Swift के लिए language bindings मौजूद हैं, और Go, JVM और Swift अनुप्रयोगों के भीतर Pkl का उपयोग करने के उदाहरण हैं। एक Spring Boot extension Boot apps को Pkl के साथ configure करने की अनुमति देता है। Kubernetes उपयोगकर्ताओं को templates और उदाहरण मिलते हैं, और Bazel build rules उपलब्ध हैं। Editor और tooling support में Language Server Protocol को लागू करने वाला एक language server, JetBrains IDEs और VS Code के लिए plugins, Neovim support, एक TextMate bundle, एक Tree-sitter parser, और Highlight.js syntax highlighting शामिल हैं। साझा packages और utility libraries pkl-pantry और pkl-project-commons repositories के माध्यम से प्रकाशित होती हैं, और external reader tools pkl-readers में रहते हैं। यह परियोजना GitHub पर खुले तौर पर विकसित की जाती है, जिसमें community प्रश्नों के लिए issues और GitHub Discussions हैं। Repository में contribution guidelines और build instructions प्रदान किए गए हैं, और CI pipelines artifacts को Sonatype repository में प्रकाशित करती हैं। सुझाए गए भाषा परिवर्तनों को pkl-evolution repository के माध्यम से SPICEs के रूप में ट्रैक किया जाता है।