Giter Site home page Giter Site logo

kcl-lang / kcl Goto Github PK

View Code? Open in Web Editor NEW
1.3K 16.0 103.0 9.63 MB

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

Home Page: https://kcl-lang.io

License: Apache License 2.0

Makefile 0.23% Go 0.21% Rust 96.88% C 0.94% LLVM 1.05% Shell 0.15% Batchfile 0.01% Dockerfile 0.29% Fluent 0.01% PowerShell 0.13% AMPL 0.11%
record configuration functional policy language rust configuration-language compiler devops kubernetes

kcl's Introduction

KCL: Constraint-based Record & Functional Language

English | 简体中文

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

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

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 LLVM, 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, 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.

Documentation

Detailed documentation is available at KCL Website

Contributing

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

Open in GitHub Codespaces

Roadmap

See KCL Roadmap.

Community

See the community for ways to join us.

License

FOSSA Status

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.