kcl-lang/kcl

KCL Programming Language Core and API (CNCF Sandbox Project). https://kcl-lang.io

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 34 minutes ago
Added to GitGenius on October 19th, 2024
Created on May 5th, 2022
Open Issues & Pull Requests: 92 (+0)
Number of forks: 169
Total Stargazers: 2,402 (+0)
Total Subscribers: 13 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 6.5 hours
Mean response time: 30.6 days
90th percentile: 62.2 days
Tracked items: 361

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 100% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 5% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 96
New in 7 days: 0
Closed in 7 days: 0
Avg open age: 444 days
Stale 30+ days: 87
Stale 90+ days: 84

Recent activity

Opened in 7 days: 0
Closed in 7 days: 0
Comments in 7 days: 0
Events in 7 days: 0

Top labels

  • bug (178)
  • enhancement (133)
  • help wanted (109)
  • lsp (93)
  • tool (75)
  • good first issue (68)
  • resolver (59)
  • semantic (43)

Detailed Description

KCL is an open-source, constraint-based record and functional programming language designed to simplify the creation of complex configurations in cloud-native environments. Implemented primarily in Rust, it is a CNCF Sandbox Project that combines programming language technology with configuration management practices to enhance modularity, scalability, and stability. The language draws inspiration from high-level languages like Python and Golang while incorporating functional programming features with minimal side effects.

The core purpose of KCL is to generate low-level static configuration data such as JSON and YAML while reducing boilerplate through schema modeling and constraint-based validation. Users can define schemas with rule constraints for configuration data and validate them automatically, organize large configurations across different environments using isolated configuration blocks, and integrate with existing data systems. The language supports mutation and validation of Kubernetes resources through cloud-native configuration tool plugins and serves as a platform engineering programming language for delivering modern applications via KusionStack.

KCL provides a rich feature set including a static type system, constraint validation, and rule-based configuration. It supports Config operations, Schema definitions, Lambda functions, and Rule constructs. The language includes an automatic merge mechanism for isolated config blocks to ensure high scalability and offers fast automation through CRUD APIs, multilingual SDKs in Rust, Go, Python, .NET, Java, and Node.js, and language plugins. Performance is optimized through Rust and C implementation with support for native code compilation and WebAssembly.

The repository demonstrates active development and community engagement.

KCL integrates extensively with the Kubernetes ecosystem through multiple plugins including Kubectl KCL Plugin, Kustomize KCL Plugin, Helm KCL Plugin, KPT KCL SDK, and Crossplane KCL Function. The language supports native API specifications such as OpenAPI, Kubernetes CRD, and the Kubernetes Resource Model specification. Developer experience is prioritized through comprehensive language tools including Format, Lint, Test, Vet, and Doc utilities, along with package management tools and IDE extensions across multiple editors.

The project emphasizes safety and maintainability by design, excluding system-level functions such as native threads and IO operations to reduce security risks and simplify governance. It has achieved production-ready status through widespread adoption in platform engineering and automation practices at Ant Group. The repository is classified across multiple domains including DSL implementation, compiler development, type system design, and functional programming, reflecting its comprehensive approach to configuration language design.