KCL基于約束的記錄及函數(shù)語言
Kusion 配置語言 (KCL, Kusion Configuration Language) 是一種開源配置語言,主要用于 Kusion Stack 開放協(xié)同技術棧。并且 KCL 是一種基于聲明性和面向對象編程 (OOP) 范式等概念,用于配置和策略場景的靜態(tài)類型語言。
核心特性
- 簡單
- 源于 Python、Golang,融入函數(shù)語言特性
- 吸收語句、表達式、條件、循環(huán)等語言元素
- 類型和數(shù)據(jù)分離,Schema 聲明配置定義
- 穩(wěn)定
- 強不可變約束
- 編譯時類型推導、類型檢查
- Rule 策略定義:以屬性為中心的約束表達式、根據(jù)約束查詢結果
- 可測試:語言內(nèi)置 assert 斷言、print 打印和測試工具
- 可擴展
- 配置合并:編譯時配置依賴圖代換
- 配置屬性運算符:滿足配置覆蓋、合并、添加和刪除等需求
- 配置復用:豐富的內(nèi)置數(shù)據(jù)結構和語法語義,輕松擴展同一份配置到不同場景
- 工程化
- Schema 單一繼承和聲明性模型復用和組裝
- 工具和API 粒度的配置自動化“增刪改查”
- 豐富的內(nèi)置函數(shù)和系統(tǒng)庫
- 頂層數(shù)據(jù)動態(tài)導入
- 代碼組織:模塊和包
- 插件系統(tǒng):復用通用編程語言生態(tài)。
- OpenAPI 模型支持:Swagger 與 Schema 雙向轉換,Kubernetes CRD 轉換為 Schema
- 高性能
- 配合 LLVM 優(yōu)化器、支持編譯到本地代碼和 WASM 等格式并高效執(zhí)行
安裝 & 文檔
如何安裝
從 Github releases 頁面下載,并且將 {install-location}/kclvm/bin 添加到您的環(huán)境變量中
快速開始
./samples/fib.k 是一個計算斐波那契數(shù)列的例子
schema Fib:
n1: int = n - 1
n2: int = n1 - 1
n: int
value: int
if n <= 1:
value = 1
elif n == 2:
value = 1
else:
value = Fib {n: n1}.value + Fib {n: n2}.value
fib8 = Fib {n: 8}.value
我們可以通過執(zhí)行如下命令得到 YAML 輸出
kcl ./samples/fib.k
YAML 輸出
fib8: 21
文檔
更多文檔請訪問 https://kusionstack.io
評論
圖片
表情
