The KCL Programming Language
KCL is an open-source constraint-based record & functional language mainly used in configuration and policy scenarios.
💻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 theCloud Native Computing Foundation (CNCF) as a Sandbox Project.
KCL aims to provide the following capabilities:
- Hide infrastructure and platform details by defining more appropriateAPI abstractions to reduce the burden of developers.
- Mutate andvalidate 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 tosemantically validate configurations at the code level, such as schema definitions, required/optional attribute requirements, types, range constraints, and etc.
- Provide capabilities forwriting, combining, and abstracting configuration chunks, such as structure definitions, structure inheritance, constraint definitions, and configuration policy merging.
- Enhance configuration flexibility by adoptingmodern programming language features, such as conditional statements, loops, functions, and package management, to improve configuration reusability.
- Providecomprehensive 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 throughpackage management tools andOCI registries.
- Offer ahigh-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.
- Improveautomation integration capabilities throughmulti-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 aplatform engineering language to deliver modern apps withKusionStack.
See theKCL website for more information.
See thecommunity for ways to join us.
PinnedLoading
Repositories
Showing 10 of 45 repositories