Kio Vibe 项目

一份源码,编译到 8 种宿主语言的静态类型可嵌入语言

项目简介

Kio 是一个静态类型、可嵌入的编程语言。它的核心理念是"写一次,到处编译"——一个 Kio 包可以同时编译到 JavaScript、Python、Rust、Go、Java、Scala、C 等 8 种宿主语言,输出的是宿主语言本身的代码,不需要单独的运行时环境。Kio 包不是独立程序,而是宿主加载的"组件",由宿主提供基础能力(数值、字符串、副作用等),Kio 只负责运行业务逻辑。这种设计让 Kio 特别适合作为"逻辑胶水"或"多端共享内核"使用。

核心功能

  1. 一处编写,8 宿主编译:单一源码可同时编译到 JS、Python、Rust、Go、Java、Scala、C 等目标,按目标语言习惯输出代码,无独立运行时。
  2. 静态类型契约:包声明需要的宿主类型与函数,并暴露自身的类型化入口;宿主必须在编译期实现契约。
  3. 库式控制结构:if!、match!、do! 等控制流由库定义而非语法内置,复用一致的模块系统。
  4. 结构化乘积与和类型:A & B 与 A | B 直接组合类型,模式匹配、Row 多态记录与变体由同一原语派生。
  5. 可证明等价:equiv { ... } 让编译器穷尽地证明两个表达式归约到同一范式,零运行时开销。
  6. 工具链齐备:内置 LSP、tree-sitter 语法、VS Code 扩展、并行编译与跨运行缓存,编辑器内即可获得快速反馈。

技术实现

Kio 会被精化(elaborate)到一个名为 Kio' 的紧凑核心,该核心基于带高阶类型与 rank-N 多态的多态 lambda 演算。Kio' 具有强规范化性质:每个良类型程序都会归约到一个范式。这意味着类型检查总是可终止的,且能在编译期彻底证明 equiv 块的成立。Kio 还采用"开放世界编译":向模块体追加声明永远不会破坏或改变依赖代码的语义,让大型代码库的演化更安全。宿主接口的契约变更会被 kio sig 工具分类为"兼容"或"破坏",团队可以提前知道升级影响。

快速上手

  1. 一行脚本安装:curl -fsSL https://jdevuyst.github.io/kio/install.sh | sh
  2. 创建一个包:编写 hello.pkg.kio(声明 package hello; 与目标列表)和 hello.kio(声明宿主类型与 pub fn main)。
  3. 定义宿主契约:用 host type String role(str); host fn print(str: String) -> .; 告诉 Kio 需要什么。
  4. 构建产物:在包目录下运行 kio build,Kio 会按 target js、target rust 等声明并行输出到 out/js/ 与 out/rust/。
  5. 宿主加载:在 JS/Rust 项目里直接 import 或 include! 编译产物即可,无需任何额外运行时。

适用人群

需要"一份逻辑多端运行"的库作者、SDK 维护者、嵌入式脚本系统设计者,以及对编译期类型证明与强规范化有兴趣的 PL 研究者。

团队信息

由 AI 猎手自动发现

评论与建议

0 条评论