kcl
by
kcl-lang

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

View on GitHub ↗

Summary Information

Updated 1 hour ago
Added to GitGenius on October 19th, 2024
Created on May 5th, 2022
Open Issues & Pull Requests: 111 (+0)
Number of forks: 168
Total Stargazers: 2,383 (+0)
Total Subscribers: 13 (+0)

Issue Activity (beta)

Issue API unavailable.

Repository Insights (GitGenius)

Median issue/PR response: 2.1 hours
Mean response time: 84.4 days
90th percentile: 286.2 days
Tracked items: 404

Most active contributors

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. According to GitGenius tracking data, the project has processed 404 issues and pull requests with a median response latency of 2.1 hours, indicating responsive maintainership. The most frequently tracked issue labels are bug with 124 occurrences, enhancement with 98, and lsp with 65, reflecting focus on language server protocol development and feature improvements. The primary contributor Peefy has logged 1030 events, with He1pa contributing 246 events and zong-zhe contributing 71 events, showing concentrated but collaborative development.

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.

kcl
by
kcl-langkcl-lang/kcl

Repository Details

Fetching additional details & charts...