不是语法糖玩具——真编译、真异步、真有标准库。下面这些都已经在跑。
关键字、类型、标准库函数全部中文:函数 / 变量 / 如果 / 当 / 整数 / 字符串。读起来像伪代码描述。
源码 → LALRPOP 解析 → LLVM IR → 原生可执行文件。没有解释器,没有虚拟机,启动即满速。
Go 风格 work-stealing 调度器 + 未来<T> / 等待 语法。轻量协程跑出 12 万 RPS 的 Web 服务。
HTTP、JSON、加密、正则、数据库、网络、文件、操作系统、压缩、大模型、MCP —— 25 个模块开箱即用。
编译器、语言服务器(补全/跳转/重命名/折叠)、格式化器、VSCode 扩展、cobra 风格 CLI 框架,全都有。
内置大模型与 MCP 接口,qi-harness 框架支持可观测、可重试、可评估的 LLM Agent,已接通 parallel tool-calls 与流式。
左边是「你好世界 + 控制流」,右边是「异步并发 + Web 服务」。
// 你好世界 + 基础控制流
包 主程序;
导入 标准库.输入输出 作为 IO;
函数 问候(名字: 字符串) : 字符串 {
返回 "你好," + 名字 + "!";
}
函数 入口() {
变量 名单: 字符串 = "小李";
如果 (字符串::字节长度(名单) > 0) {
IO.打印行(问候(名单));
} 否则 {
IO.打印行("世界,你好");
}
变量 计: 整数 = 0;
当 (计 < 3) {
IO.打印行("第 " + 整数转字符串(计));
计 = 计 + 1;
}
}
// 异步函数 + 12 万 RPS Web 服务
包 主程序;
导入 Web::{ 创建应用, 启动 };
函数 慢查询(编号: 整数) : 未来<整数> {
返回 编号 * 2;
}
函数 处理(请求: 请求, 响应: 响应) {
变量 值: 整数 = 等待 慢查询(21);
响应.JSON("{\"结果\": " + 整数转字符串(值) + "}");
}
函数 入口() {
变量 应用 = 创建应用();
应用.获取("/", 处理);
启动(应用, 3076); // 随机高位端口
}
编译器到 IDE 集成,Web 框架到 AI Agent,都在同一个 Cargo workspace 里。
LLVM 后端、中文词法/语法、M:N 异步运行时、GC。核心 7 万行。
Express / Fiber 风格。122k RPS,比 Express 快 5.5 倍、比 Node 快 25%。
cobra 风格命令树、子命令、持久参数、执行钩子、自动帮助。
可观测 / 可重试 / 可评估的 LLM Agent 框架,支持流式与并行工具调用。
补全、跳转、引用、重命名、格式化、折叠、语义高亮,CJK 全支持。
qifmt 代码格式化器,被 LSP 复用,统一代码风格。
基于 Tao + Skia 的跨平台窗口与 2D 渲染,静态链接进编译产物。
语法高亮、代码片段、LSP 客户端、Qi 专属主题。
macOS / Linux 一行脚本安装,或从源码用 Cargo 构建(需要 LLVM 15)。
# 一键脚本(预编译二进制)
curl -fsSL https://raw.githubusercontent.com/\
qilang-project/qi/main/scripts/install.sh | bash
# 或从源码构建
git clone https://github.com/qilang-project/qi
cd qi-compiler && cargo build --release
# 写一个文件
包 主程序;
导入 标准库.输入输出 作为 IO;
函数 入口() { IO.打印行("你好 Qi"); }
# 编译并运行
$ qi run 你好.qi
你好 Qi
# 只检查语法
$ qi check 你好.qi