KCL 基于约束的记录及函数语言开源项目

我要开发同款
匿名用户2022年08月03日
183阅读
开发技术C/C++
所属分类云计算、云原生
授权协议Apache

作品详情

Kusion配置语言(KCL,KusionConfigurationLanguage)是一种开源配置语言,主要用于 KusionStack 开放协同技术栈。并且KCL是一种基于声明性和面向对象编程(OOP)范式等概念,用于配置和策略场景的静态类型语言。

核心特性简单源于Python、Golang,融入函数语言特性吸收语句、表达式、条件、循环等语言元素类型和数据分离,Schema声明配置定义稳定强不可变约束编译时类型推导、类型检查Rule策略定义:以属性为中心的约束表达式、根据约束查询结果可测试:语言内置assert断言、print打印和测试工具可扩展配置合并:编译时配置依赖图代换配置属性运算符:满足配置覆盖、合并、添加和删除等需求配置复用:丰富的内置数据结构和语法语义,轻松扩展同一份配置到不同场景工程化Schema单一继承和声明性模型复用和组装工具和API粒度的配置自动化“增删改查”丰富的内置函数和系统库顶层数据动态导入代码组织:模块和包插件系统:复用通用编程语言生态。OpenAPI模型支持:Swagger与Schema双向转换,KubernetesCRD转换为Schema高性能配合LLVM优化器、支持编译到本地代码和WASM等格式并高效执行安装&文档如何安装

从Githubreleases页面下载,并且将 {install-location}/kclvm/bin 添加到您的环境变量中

快速开始

./samples/fib.k 是一个计算斐波那契数列的例子

schemaFib:n1:int=n-1n2:int=n1-1n:intvalue:intifn<=1:value=1elifn==2:value=1else:value=Fib{n:n1}.value+Fib{n:n2}.valuefib8=Fib{n:8}.value我们可以通过执行如下命令得到YAML输出

kcl./samples/fib.kYAML输出

fib8:21文档

更多文档请访问 https://kusionstack.io

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论