AI 更容易写对
Rust 的块、函数、结构体和 `impl` 让代码有骨架;去掉借用检查和显式 `mut`,让模型生成和人类改写都更直接。
The dynamic language for AI-native software
Zust 是给智能体、工具链和宿主系统准备的动态运行语言:像 Rust 一样有结构,像脚本一样能热更新,并能一路走向 Cranelift JIT、原生函数和 GPU 后端。
pub fn agent_task(ctx) {
let plan = ctx.goal;
let tools = root::get("local/tools");
for step in plan.steps {
let result = tools[step.tool](step.input);
ctx.memory.push(result);
}
ctx.memory
}
为什么 AI 时代需要新脚本层
当智能体开始实时生成工作流、数据变换、工具调用和计算 kernel,传统“写死、编译、上线”的节奏会被打破。Zust 的位置,就是把 AI 生成的意图变成可审查、可热更新、可持久演进的脚本,并在需要性能时编译成本地函数。
Rust 的块、函数、结构体和 `impl` 让代码有骨架;去掉借用检查和显式 `mut`,让模型生成和人类改写都更直接。
`Dynamic` 覆盖 map、list、bytes、typed vector、JSON 和 MessagePack。智能体拿到的上下文、工具结果和外部 API 可以直接进入运行时。
`zust-vm` 使用 Cranelift 编译模块,并把函数指针交给宿主 Rust 调用。先动态,后加速,脚本可以进入真正的执行链路。
同一语言面向 CPU JIT、SPIR-V、Metal 和 Vulkan 实验。AI 不只生成业务逻辑,也可以生成可验证的计算过程。
AI-native runtime layer
Zust 想成为这中间那层可控的语言:比 JSON 工作流更有表达力,比完整系统语言更适合热更新,比一次性 prompt 更容易沉淀为长期资产。
Open source on GitHub
Parser、compiler、VM、Dynamic、GPU 后端、LSP 和示例脚本都在同一个 workspace 里。你可以直接 clone、运行、阅读实现,也可以把它嵌入自己的 Rust 系统里。
语言概览
`.zs` 文件支持函数、泛型、结构体、`impl`、闭包、导入、模式绑定、表达式形式的 `if`/`else`、`for`、`while`、`loop` 和复合赋值。它的目标是让脚本保持短小,同时保留可维护的结构。
struct Point {
x: f64,
y: f64,
}
impl Point {
pub fn len2(self: Point) {
self.x * self.x + self.y * self.y
}
}
pub fn demo() {
let p = Point{x: 3.0, y: 4.0};
p.len2()
}
运行时与后端
仓库包含 parser、compiler、VM、root、llm、SPIR-V、Metal、Vulkan、LSP 与编辑器扩展。Zust 可以作为 Rust 应用里的脚本层,也可以作为计算 kernel 的高层描述。
pub struct BigFloat<N> {
sign: bool,
exp: i32,
data: [u32; N],
}
impl BigFloat<N> {
pub fn zero() {
BigFloat<N>{
sign: false,
exp: 0,
data: [0u32; N],
}
}
pub fn add(self: BigFloat<N>, rhs: BigFloat<N>) {
// same script shape, CPU JIT or GPU backend
bigfloat_add(self, rhs)
}
}
手写词法分析、递归下降解析、AST 到 IR、符号表和类型推断。
Cranelift JIT、动态值模型、可寻址对象树和存储抽象。
面向 SPIR-V、Metal 源码生成和 Vulkan dispatch 的 GPU 后端。
通用模型调用辅助、`.zs` 语言服务器和 Zed 编辑器扩展。
快速开始
最小流程是导入源码、请求已编译函数指针,然后把它作为本地函数调用。完整示例可以在仓库的 `vm/examples/minimal_vm.rs` 查看。
cargo check --workspace
cargo run -p vm --example minimal_vm
cargo run -p zusts