💻 Website | 👩💻 Quick Start | 👀 Blog | 📦 Modules | 🔧 SDKs | 🔌 Plugins | 💻 IDE Extensions | 🎮 Playground |☸️ KRM KCL Spec
KCL is a constraint-based record & functional language mainly used in cloud-native configuration and policy scenarios. It is hosted by the Cloud Native Computing Foundation (CNCF) as a Sandbox Project.
KCL aims to provide the following capabilities:
- Hide infrastructure and platform details by defining more appropriate API abstractions to reduce the burden of developers.
- Mutate and validate existing config files or manifests through numerous community modules.
- Manage large-scale configuration data across teams without side effects through configuration and policy language for GitOps.
Specifically, KCL can
- Improve the ability to semantically validate configurations at the code level, such as schema definitions, required/optional attribute requirements, types, range constraints, and etc.
- Provide capabilities for writing, combining, and abstracting configuration chunks, such as structure definitions, structure inheritance, constraint definitions, and configuration policy merging.
- Enhance configuration flexibility by adopting modern programming language features, such as conditional statements, loops, functions, and package management, to improve configuration reusability.
- Provide comprehensive toolchain support, including rich IDE extensions and toolchains support to reduce the learning curve and enhance the user experience.
- Enable easier sharing, propagation, and delivery of configurations between different teams/roles through package management tools and OCI registries.
- Offer a high-performance compiler to meet the demands of scalable configuration scenarios, such as rendering performance for generating configurations for different environments and topologies based on a baseline configuration and configuration automation modification performance requirements.
- Improve automation integration capabilities through multi-language SDKs, KCL language plugins, and other means, significantly reducing the learning curve while leveraging the value of configuration and policy writing with KCL.
- Used as a platform engineering language to deliver modern apps with KusionStack.
See the KCL website for more information.
See the community for ways to join us.