关键字、类型、标准库函数全部中文:函数 / 变量 / 如果 / 当 / 整数 / 字符串。读起来像伪代码描述。
源码 → LALRPOP 解析 → LLVM IR → 原生可执行文件。没有解释器,没有虚拟机,启动即满速。
Go 风格 work-stealing 调度器 + 未来<T> / 等待 语法。轻量协程跑出 12 万 RPS 的 Web 服务。
HTTP、JSON、数据库(SQLite/PG/MySQL)、Redis、gRPC、WebSocket、加密、正则、压缩、大模型、MCP —— 37 个模块开箱即用。
编译器、语言服务器(补全/跳转/重命名/折叠)、格式化器、VSCode 扩展、cobra 风格 CLI 框架,全都有。
内置大模型与 MCP 接口,qi-harness 框架支持可观测、可重试、可评估的 LLM Agent,已接通 parallel tool-calls 与流式。
左边是「你好世界 + 控制流」,右边是「异步并发 + Web 服务」。
// 你好世界 + 基础控制流
包 主程序;
导入 标准库.输入输出 作为 IO;
函数 问候(名字: 字符串) : 字符串 {
返回 "你好," + 名字 + "!";
}
函数 入口() {
变量 名单: 字符串 = "小李";
如果 (字符串::字节长度(名单) > 0) {
IO.打印行(问候(名单));
} 否则 {
IO.打印行("世界,你好");
}
变量 计: 整数 = 0;
当 (计 < 3) {
IO.打印行("第 " + 整数转字符串(计));
计 = 计 + 1;
}
}
// 异步函数 + 12 万 RPS Web 服务
包 主程序;
导入 Web::{应用, 上下文, 响应, 创建应用, 配置, 获取, JSON, 运行应用_异步};
导入 标准库.JSON 作为 J;
函数 慢查询(编号: 整数) : 未来<整数> {
返回 编号 * 2;
}
函数 处理(上下文值: 上下文) : 响应 {
变量 值: 整数 = 等待 慢查询(21);
变量 数据 = J.创建对象();
J.设置整数(数据, "结果", 值);
返回 JSON(J.转字符串(数据));
}
函数 入口() {
变量 应用值: 应用 = 创建应用();
应用值 = 配置(应用值, "127.0.0.1", 3076);
应用值 = 获取(应用值, "/", 处理);
运行应用_异步(应用值);
}
编译器、语言服务器、图形库是 Rust;Web、CLI、AI Agent、组件库都是用奇语自己写的。
LLVM 21 后端、中文词法/语法、llvm.coro 真协程、ARC 引用计数。核心近 10 万行。
Express / Fiber 风格。122k RPS,比 Express 快 5.5 倍、比 Node 快 25%。
cobra 风格命令树、子命令、持久参数、执行钩子、自动帮助。
可观测 / 可重试 / 可评估的 LLM Agent 框架,支持流式与并行工具调用。
补全、跳转、引用、重命名、格式化、折叠、语义高亮,CJK 全支持。
qifmt 代码格式化器,被 LSP 复用,统一代码风格。
winit + softbuffer 软件渲染,不依赖 GPU;egui 控件与 2D 画布,静态链接进产物。
三套主题、卡片/标签页/对话框、表单与校验、进度环,还有一层小游戏框架。
一元与流式调用、TLS、gzip、服务反射,和 Go 的 gRPC 实测互通。
驱动 pkg.qilang.org:qi 包 发布 / 添加 / 搜索,sha256 校验 + 锁文件。
语法高亮、代码片段、LSP 客户端、Qi 专属主题。
macOS / Linux 一行脚本安装,或从源码用 Cargo 构建(需要 LLVM 21)。
# 一键脚本(预编译二进制)
curl -fsSL https://raw.githubusercontent.com/\
qilang-project/qi/main/scripts/install.sh | bash
# 或从源码构建
git clone https://github.com/qilang-project/qi
cd qi && cargo build --release
# 写一个文件
包 主程序;
导入 标准库.输入输出 作为 IO;
函数 入口() { IO.打印行("你好 Qi"); }
# 编译并运行
$ qi run 你好.qi
你好 Qi
# 只检查语法
$ qi check 你好.qi