K
Kio Vibe 项目
一份源码,编译到 8 种宿主语言的静态类型可嵌入语言
项目简介
Kio 是一个静态类型、可嵌入的编程语言。它的核心理念是"写一次,到处编译"——一个 Kio 包可以同时编译到 JavaScript、Python、Rust、Go、Java、Scala、C 等 8 种宿主语言,输出的是宿主语言本身的代码,不需要单独的运行时环境。Kio 包不是独立程序,而是宿主加载的"组件",由宿主提供基础能力(数值、字符串、副作用等),Kio 只负责运行业务逻辑。这种设计让 Kio 特别适合作为"逻辑胶水"或"多端共享内核"使用。
核心功能
- 一处编写,8 宿主编译:单一源码可同时编译到 JS、Python、Rust、Go、Java、Scala、C 等目标,按目标语言习惯输出代码,无独立运行时。
- 静态类型契约:包声明需要的宿主类型与函数,并暴露自身的类型化入口;宿主必须在编译期实现契约。
- 库式控制结构:
if!、match!、do!等控制流由库定义而非语法内置,复用一致的模块系统。 - 结构化乘积与和类型:
A & B与A | B直接组合类型,模式匹配、Row 多态记录与变体由同一原语派生。 - 可证明等价:
equiv { ... }让编译器穷尽地证明两个表达式归约到同一范式,零运行时开销。 - 工具链齐备:内置 LSP、tree-sitter 语法、VS Code 扩展、并行编译与跨运行缓存,编辑器内即可获得快速反馈。
技术实现
Kio 会被精化(elaborate)到一个名为 Kio' 的紧凑核心,该核心基于带高阶类型与 rank-N 多态的多态 lambda 演算。Kio' 具有强规范化性质:每个良类型程序都会归约到一个范式。这意味着类型检查总是可终止的,且能在编译期彻底证明 equiv 块的成立。Kio 还采用"开放世界编译":向模块体追加声明永远不会破坏或改变依赖代码的语义,让大型代码库的演化更安全。宿主接口的契约变更会被 kio sig 工具分类为"兼容"或"破坏",团队可以提前知道升级影响。
快速上手
- 一行脚本安装:
curl -fsSL https://jdevuyst.github.io/kio/install.sh | sh - 创建一个包:编写
hello.pkg.kio(声明package hello;与目标列表)和hello.kio(声明宿主类型与pub fn main)。 - 定义宿主契约:用
host type String role(str); host fn print(str: String) -> .;告诉 Kio 需要什么。 - 构建产物:在包目录下运行
kio build,Kio 会按target js、target rust等声明并行输出到out/js/与out/rust/。 - 宿主加载:在 JS/Rust 项目里直接
import或include!编译产物即可,无需任何额外运行时。
适用人群
需要"一份逻辑多端运行"的库作者、SDK 维护者、嵌入式脚本系统设计者,以及对编译期类型证明与强规范化有兴趣的 PL 研究者。
团队信息
AI产品库
官方
由 AI 猎手自动发现
评论与建议
登录 后参与评论或提建议