GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - kcl-lang/kcl: KCL Language Core and API

BranchesTags
Open more actions menu

Latest commit

 

History

1,393 Commits
1,393 Commits

Folders and files

NameName
Last commit message
Last commit date
.devcontainer
.devcontainer
 
 
.github
.github
 
 
3rdparty/serde_yaml
3rdparty/serde_yaml
 
 
compiler_base
compiler_base
 
 
crates
crates
 
 
docs
docs
 
 
scripts
scripts
 
 
tests
tests
 
 
.gitattributes
.gitattributes
 
 
.gitignore
.gitignore
 
 
ADOPTERS.md
ADOPTERS.md
 
 
CODE_OF_CONDUCT.md
CODE_OF_CONDUCT.md
 
 
Cargo.toml
Cargo.toml
 
 
GOVERNANCE.md
GOVERNANCE.md
 
 
LICENSE
LICENSE
 
 
MAINTAINERS
MAINTAINERS
 
 
Makefile
Makefile
 
 
README-zh.md
README-zh.md
 
 
README.md
README.md
 
 
rustfmt.toml
rustfmt.toml
 
 

Repository files navigation

KCL: Constraint-based Record & Functional Language

English | 简体中文

Introduction | Features | What is it for | Installation | Documentation | Contributing

Introduction

KCL is an open-source, constraint-based record and functional language that enhances the writing of complex configurations, including those for cloud-native scenarios. With its advanced programming language technology and practices, KCL is dedicated to promoting better modularity, scalability, and stability for configurations. It enables simpler logic writing and offers ease of automation APIs and integration with homegrown systems.

What is it for?

You can use KCL to

  • Generate low-level static configuration data such as JSON, YAML, etc., or integrate with existing data.
  • Reduce boilerplate in configuration data with the schema modeling.
  • Define schemas with rule constraints for configuration data and validate them automatically.
  • Organize, simplify, unify and manage large configurations without side effects through gradient automation schemes and GitOps.
  • Manage large configurations in a scalable way for different environments with isolated configuration blocks.
  • Mutating or validating Kubernetes resources with cloud-native configuration tool plugins.
  • Used as a platform engineering programming language to deliver modern applications with KusionStack.

Features

  • Easy-to-use: Originated from high-level languages ​​such as Python and Golang, incorporating functional language features with low side effects.
  • Well-designed: Independent spec-driven syntax, semantics, runtime and system modules design.
  • Quick modeling: Out-of-the-box modules and Schema-centric configuration types and modular abstraction.
  • Rich capabilities: Configuration with type, logic and policy based on Config, Schema, Lambda, Rule.
  • Stability: Configuration stability is achieved through a static type system, constraints, and rules.
  • Scalability: High scalability is assured with an automatic merge mechanism of isolated config blocks.
  • Fast automation: Gradient automation scheme of CRUD APIs, multilingual SDKs, and language plugin
  • High performance: High compile-time and runtime performance using Rust & C, and support compilation to native code and WASM.
  • API affinity: Native support for ecological API specifications such as OpenAPI, Kubernetes CRD, Kubernetes Resource Model (KRM) spec.
  • Developer-friendly: Friendly development experiences with rich language tools (Format, Lint, Test, Vet, Doc, package management tools etc.), and multiple IDE extensions.
  • Safety & maintainable: Domain-oriented, no system-level functions such as native threads and IO, low noise and security risk, easy maintenance and governance.
  • Rich multi-language SDK: Rust, Go, Python, .NET, Java and Node.js SDKs meet different scenarios and application use prelude.
  • Integrations: Abstract, mutate and validate manifests through Kubectl KCL Plugin, Kustomize KCL Plugin, Helm KCL Plugin, KPT KCL SDK or Crossplane KCL Function.
  • Production-ready: Widely used in production practices of platform engineering and automation at Ant Group.

How to choose?

A detailed feature and scenario comparison is here.

Installation

For more information about installation, please check the Installation Guide on the KCL official website.

Alternatively, you can follow the interactive KubeStellar Console Guided Install Mission for step-by-step installation with automated pre-flight checks and cluster validation.

Documentation

Detailed documentation is available at KCL Website

There is also a very nice Devin generated document available at deepwiki.

Contributing

See Developing Guide. You can also get started by opening the project in GitHub Codespaces.

Open in GitHub Codespaces

Community

See the community for ways to join us.

License

FOSSA Status

About

KCL Language Core and API

kcl-lang.io

Topics

cloud-nativecompilerconfigurationconfiguration-languageconfiguration-managementdevopsfunctionalinfrastructure-as-codekuberneteslanguageplatform-engineeringpolicyprogramming-languagerecordrustschemashift-leftvalidation

Resources

Readme
Apache-2.0 license

Code of conduct

Code of conduct

Contributing

Contributing
Activity
Custom properties

Stars

2.4k stars

Watchers

16 watching

Forks

176 forks
Report repository

Releases

Packages

Used by

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.