KCL 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
KCL 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
KCL 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 C/C++ Rust 查看源码 »
操作系统 跨平台
软件类型 开源软件
所属分类 云计算云原生
开源组织 蚂蚁金服
地区 国产
投 递 者
适用人群 未知
收录时间 2022-08-03

软件简介

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

核心特性

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

安装 & 文档

如何安装

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

快速开始

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

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

我们可以通过执行如下命令得到 YAML 输出

kcl ./samples/fib.k

YAML 输出

fib8: 21

文档

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(1) 发布并加入讨论🔥
发表了资讯
03/20 13:50

KCL 3 月社区活动和最新动态速递!

KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! KCL 官网:https://kcl-lang.io 内容概述 感...

0
0
发表了资讯
03/07 15:28

KCL v0.8.0 重磅发布 - 融汇社区生态,助力配置体验!

简介 KCL 团队很高兴地宣布 KCL v0.8.0 新版本现在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用功能更完善错误更少的 KCL 语言、工具链和 IDE 提升代码编写体验和效率 更加全面丰富的社区生态集成,改善运维体验 更加丰富的 KCL 三方库模型,更加轻松的与云原生生态集成 进一步您可以在 KCL v0.8.0 发布页面 或者 KCL 官方网站 获得下载安装指南和详细发布信息。 KCL 是一个 CN...

0
0
发表了资讯
03/04 17:08

官宣!知名 IaC 工具 Crossplane 宣布 KCL 登陆其官方函数市场!

内容转载整理自 Crossplane 官网博客原文:https://blog.crossplane.io/function-kcl 内容简介 自 Crossplane v1.14 中的组合函数 Beta 版发布以来,使用 Crossplane 构建云原生平台的可能体验范围一直在迅速扩大。KCL 团队在第一时间进行跟进并主动构建了一个可重用的函数,整个 Crossplane 生态系统现在可以利用 KCL 提供的高水平经验和能力来构建自己的云原生平台。 同时 Crossplane 宣布 KCL 函数成为第一个发布到 Upbound ...

0
0
发表了资讯
01/04 18:58

KCL 动态速递 | Crossplane 与 KCL 集成简化云资源配置与抽象

KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! KCL 官网:kcl-lang.io 内容概述 感谢所有贡...

0
0
发表了资讯
2023/11/23 17:23

快来查收 KCL 社区开源快讯 | 云原生模型、语言和工具链更新速递!

双周同步开源进展 欢迎加入 KCL 社区进行互动~ KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区...

0
0
发表了资讯
2023/11/09 14:32

KCL 社区最新动态速递 | 大量体验提升!IDE 插件新增所处补全、更流畅的包管理和开箱即用模型

双周同步开源进展 欢迎加入 KCL 社区进行互动~ KCL 是一个 CNCF 基金会托管的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! ...

0
0
发表了资讯
2023/10/12 20:38

KCL 社区开源双周报 | 更多 Kubernetes 模型和 IDE 插件功能支持!

KCL 是一个开源的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! KCL 官网:https://kcl-lang.io 内容概述 感谢所有贡献者过去...

0
0
发表了资讯
2023/09/20 13:53

喜报!CNCF 基金会宣布 KCL 成为沙盒项目!

2023 年 9 月 20 日,KCL 项目通过了全球顶级开源基金会云原生计算基金会(CNCF)技术监督委员会评定,正式成为 CNCF 沙箱项目。 这意味着 KCL 得到了云原生开源社区的认可,保障了项目的中立性,有利于开发者、合作伙伴等共同参与项目建设,协作共赢,并为云原生应用交付带来动态配置管理和自动化能力迈出了重要一步! 项目地址:https://github.com/kcl-lang/kcl 项目官网:https://kcl-lang.io 通过进入 CNCF 沙箱,KCL 社区...

0
0
发表了资讯
2023/09/15 19:29

KCL 语言 v0.6.0 重磅发布 - 更易用的语言、IDE 工具链、社区集成和扩展支持

KCL 团队很高兴地宣布 KCL v0.6.0 新版本现在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用功能更完善错误更少的 KCL 语言、IDE 和工具链提升代码编写体验和效率 使用 包管理工具 KPM 和 OCI Registry 等工具直接使用和共享您的云原生领域模型,降低学习和上手成本 使用 Helmfile KCL 插件和 KCL Operator 等云原生集成扩展同时支持在客户端和运行时对 Kubernetes 资源进行原地修...

2
0
发表了资讯
2023/08/23 18:12

KCL 社区开源双周报和 v0.5.5 新版本发布

KCL 是一个开源的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! KCL 官网:https://kcl-lang.io 内容概述 感谢所有贡献者过去...

0
1
发表了资讯
2023/08/10 15:16

KCL 开源社区双周快讯 | KCL 0.5.1 和 0.5.2 版本正式发布

KCL 是一个开源的基于约束的记录及函数语言并通过成熟的编程语言技术和实践来改进对大量繁杂配置比如云原生 Kubernetes 配置场景的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更简单的自动化和生态工具集成。 本栏目将会双周更新 KCL 语言社区最新动态,包括功能、官网更新和最新的社区动态等,帮助大家更好地了解 KCL 社区! KCL 官网:https://kcl-lang.io 内容概述 过去两周 (2023 07...

0
1
发表了资讯
2023/07/17 14:08

KCL v0.5.0 重磅发布 - 面向云原生场景更易用的语言、工具链,社区集成和扩展支持

简介 KCL 团队很高兴地宣布 KCL v0.5.0 新版本现在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用功能更完善错误更少的 KCL 语言和 IDE 提升代码编写体验和效率 使用 KPM, KCL OpenAPI 和 OCI Registry 等工具直接使用和共享您的云原生领域模型,降低学习和上手成本 使用 Github Action, ArgoCD 和 Kubectl KCL 插件等社区工具集成和扩展支持提升自动化效率 进一步您可以在 KCL v0...

0
0
发表了资讯
2023/04/27 21:28

和过去的版本说再见 - KCL 语言 Go SDK 新功能速览!

KCL 是什么? KCL 是一个开源的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置和策略的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更快的自动化集成和良好的生态延展性。 KCL Go SDK 是什么? kclvm 是一个 KCL 语言的运行时库,它提供了一个与 KCL 编译器交互的编程接口。它是一个客户端库,可用于对 KCL源代码执行各种操作,例如 执行、格式化等。K...

0
3
发表了资讯
2023/04/17 15:36

KCL v0.4.6 发布 - 全新的 IDE 插件,Helm/Kustomize/KPT 工具集成

简介 KCL 团队很高兴地宣布 KCL v0.4.6 新版本现在已经可用!本次发布为大家带来了三方面的重点更新:语言、工具链、社区集成 & 扩展支持。 使用 IDE 插件提升 KCL 代码编写体验和效率 Helm/Kustomize/KPT 云原生社区工具集成 完善 KCL 多语言 SDK,方便应用程序集成 进一步您可以在 KCL v0.4.6 发布页面 或者 KCL 官方网站 获得下载安装指南和详细发布信息。 KCL 是一个开源的基于约束的记录及函数语言,期望通过成熟的编程语言...

0
1
发表了资讯
2023/03/22 14:22

KCL IDE 实时显示警告和错误功能来了,支持完整语法语义错误恢复

热乎的 PR:https://github.com/KusionStack/KCLVM/pull/460 效果展示:

0
0
发表了资讯
2023/03/20 13:28

KCL v0.4.6 alpha 发布,更多 Kubernetes 工具集成、IDE 错误提示

简介 KCL 团队很高兴地宣布 KCL v0.4.6-alpha.1 版本现在已经可用! 您可以在 KCL v0.4.6-alpha.1 发布页面 或者 KCL 官方网站 获得 KCL 二进制下载链接和更多详细发布信息。 KCL 是一个开源的基于约束的记录及函数语言,期望通过成熟的编程语言技术和实践来改进对大量繁杂配置和策略的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更快的自动化集成和良好的生态延展性。 发布内容 包含数字...

0
1
发表了资讯
2023/02/27 17:04

KCL v0.4.5 发布 - 更好的编写便利性改进,稳定性,体验提升与多平台支持

简介 KCL 团队很高兴地宣布 KCL v0.4.5 版本现在已经可用!本次发布主要为 KCL 语言编写便利性和稳定性提升,错误信息改进以及更多平台包括 windows 版本支持以及更多下载方式支持。在 KCL v0.4.5 版本中,用户可以通过编写更少的 KCL 代码消除更多的配置模版;在新版本中提供了初步的 KCL Playground 支持可用于在线免安装编写并运行 KCL 代码;此外此次更新还包含多项编译器报错信息优化和错误修复。 您可以在 KCL v0.4.5 发布...

0
0
发表了资讯
2022/12/08 14:56

KCL v0.4.4 发布! 自定义 YAML Manifests 输出以及 Python SDK!

KCL 团队很高兴地宣布 0.4.4 版本现在已经可用!本次发布主要为 KCL 语言增加了自定义 YAML Manifests 输出的能力,用户可以通过编写代码并调用系统函数来自定义 YAML 输出的样式而无需理解复杂的 schema settings 语义;此外本次发布提供了最新的 KCL Python SDK 可用于 Python 用户对 KCL 直接集成;同时我们大大降低了 KCL 安装包的体积,平均安装包体积降低为之前版本的五分之一,并包含多项编译器报错信息优化和 bug 修复。...

0
0
发表了资讯
2022/12/01 16:11

KCL - 让 Kubernetes 资源清单管理更容易

什么是 KCL KCL (Kusion Configuration Language) [https://github.com/KusionStack/KCLVM] 是一个开源的基于约束的记录及函数语言,主要用于配置编写和策略校验场景。KCL 期望通过成熟的编程语言技术和实践来改进对大量繁杂配置的编写,致力于构建围绕配置的更好的模块化、扩展性和稳定性,更简单的逻辑编写,以及更快的自动化集成和良好的生态延展性。 所谓配置就是当我们部署软件系统时,我们并不认为它们是固定不变的。不断...

0
1
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
1 评论
3 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部