中文思考,
原生速度

奇语言不是翻译贴皮——关键字、类型、异常、并发,从源码到机器码全程中文表达,性能与 Go 同场竞技。

Qi — think in Chinese, run at native speed.

LLVM 21ARC 默认开启macOS · Linux · WindowsMIT 许可
你好世界.qi
 主程序;

函数 入口() {
    变量 名字: 字符串 = "世界";
    打印行("你好, " + 名字 + "!");
}

为什么是奇语言

现代语言该有的,它都有——而且全部用中文表达。

🀄

100% 中文关键字

如果/否则、当、函数、变量、结构体、尝试/捕获——语法即母语,中英文标点混用皆可。

LLVM 原生编译

inkwell + LLVM 21 类型化 IR,-O 四档优化管线。计算密集场景与 C/Rust/Go 同梯队。

♻️

ARC 自动内存管理

字符串/结构体/数组/闭包全自动引用计数回收,默认开启。长跑服务内存稳定有界。

🧵

Go 风格并发

启动 一个协程、通道通信、未来<T> 与 等待——M:N 调度,协程内异常自动入队。

📦

包管理 qi get

qi.toml 声明依赖,支持 GitHub / 任意 git 远程 / 本地路径,锁定 commit,编译期零联网。

🎯

交叉编译

在 mac 上一条命令编出 Linux 可执行文件(x86_64 / aarch64),零 Docker,zig 链接。

语言能力全景

类型、控制流、结构体与方法、闭包、异常、并发——每段代码都在 2026.07.09-1 真实编译器上验证通过。

类型与变量.qi
变量 名字 = "Qi";           // 类型推断
变量 年龄: 整数 = 10;       // 整数 = i64
常量 PI = 3.14159;          // 不可变
变量 激活: 布尔 = ;
打印行("年龄: " + 年龄);   // 字符串直接拼数字
打印行(整数转字符串(42));   // 内建类型转换
控制流.qi
如果 x > 10 {
    打印行("大于10");
} 否则 {
    打印行("其他");
}
 i < 10 { i = i + 1; }        // while
对于 n  [10, 20, 30] { 打印行(n); }
结构体与方法.qi
类型 用户 {
    字符串 姓名;
    整数 年龄;
}

// Go 风格接收者方法
函数 (自己 用户) 简介(): 字符串 {
    返回 自己.姓名 + "(" + 自己.年龄 + "岁)";
}

变量 甲 = (用户 { 姓名: "张三", 年龄: 30 });
打印行(甲.简介());   // 张三(30岁)
闭包与函数值.qi
函数 应用(f: 函数(整数): 整数, x: 整数): 整数 {
    返回 f(x);
}

变量 基数 = 100;
变量 加基数 = 闭包(x: 整数): 整数 {
    返回 x + 基数;   // 捕获环境,ARC 管理
};
打印行(应用(加基数, 5));   // 105
异常处理.qi
函数 除法(a: 整数, b: 整数): 整数 {
    如果 b == 0 { 抛出 "除数不能为零"; }
    返回 a / b;
}

尝试 {
    打印行(除法(10, 0));
} 捕获 错误 {
    打印行("捕获: " + 错误);   // 跨函数传播
} 最终 {
    打印行("清理完成");
}
并发.qi
函数 生产者(信道: 通道<整数>) { 信道 <- 42; }
函数 慢算(x: 整数): 未来<整数> { 返回 x * x; }

变量 信道 = 通道<整数>();
启动 生产者(信道);          // goroutine
打印行(<- 信道);            // 42,阻塞接收
变量 结果值: 整数 = 等待 慢算(5);

还有:默认参数与变参、公开 可见性、多文件包组织、goroutine 异常队列、等待组、原子/互斥锁…… 完整语法见 文档llms-full.txt(机器可读全参考)。

标准库:30+ 模块,能写真东西

从文件到 HTTP、从 SQLite 到大模型调用,均为编译器内建模块,导入即用。仓库附 155 个可运行示例(基础 / 标准库 / 并发 / 高级 / 图形界面)。

输入输出·文件文本·字符串JSONHTTP 客户端/服务器网络 TCP/UDPWebSocket加密 SHA/HMAC/Base64正则时间·日期哈希表列表随机·UUID路径操作系统子进程数据库 SQLite压缩 Gzip配置 TOML/INI大模型 LLMMCP 服务器/客户端命令行测试断言同步原语环境向量图形化 GUITLS信号字节切片

真实网络栈

HTTP 客户端为 reqwest 实现(GET/POST/PUT/DELETE/PATCH/全定制请求),TCP/UDP 原语齐全,WebSocket、TLS 可用。

数据与持久化

JSON 句柄式构建/解析,SQLite 数据库,Gzip 压缩,TOML/INI 配置,文件系统全套操作。

AI 原生

标准库.大模型 直连 OpenAI 兼容 API;标准库.MCP服务器/客户端 让 Qi 程序直接说 MCP 协议。

工具链全家桶

编译、测试、格式化、补全、打包——工程成熟度不靠嘴说。

🛠

编译器 qi

run / compile / check / test / get,命令全部有中文别名(运行/编译/检查)。-O 四档优化;rustc 风格友好错误(行列号 + 源码 caret + 修复提示)。

🎯

交叉编译

qi --target linux --arch x86_64 compile 在 macOS 直出 Linux ELF,zig 链接,零 Docker;aarch64 同理。

📦

包管理 qi get

qi.toml(键名中英皆可)+ qi.lock 锁 commit;缓存于 ~/.qi/packages,编译期零联网,可复现构建。

🧪

qi test

递归发现 *_测.qi 逐个编译运行,-f 过滤 / -v 详细,标准库断言或 qi-test 框架(用例/桩/spy)。

🔤

qifmt 格式化

只动空白的保守格式化器:缩进重排、去行尾空白、幂等输出;--check 供 CI 使用。

🧩

LSP + VSCode

qi-lsp 语言服务器:补全、诊断、跳转定义、悬停、格式化;配套 VSCode 扩展与语法高亮、代码片段、深浅主题。

性能与内存

同机实测(Apple M2 Pro · 2026-07),诚实数据,可复现。

计算密集 · fib(40) 耗时(越短越好)

奇语言
0.28s
Go 1.26
0.32s
Node 24
0.71s

-O maximum,LLVM 21 优化管线。递归/内联密集场景快过 Go 约 15%。

Web 吞吐 · 最小 HTTP 服务(越长越好)

Go
163k rps
奇语言
147k rps
Node
~74k rps

qi-web 框架,wrk -t4 -c100。达到 Go net/http 的 90%,为 Node 单进程的 2 倍。

ARC 自动回收

字符串/结构体/数组/闭包环境四类对象自动 retain/release,跨线程原子计数,字符串字面量不朽零开销。

可观测

QI_RC_REPORT=1 退出时打印活跃对象计数,当场看到有没有泄漏;QI_ARC=0 可对照关闭。

诚实边界

循环引用不回收(纯引用计数无环检测,同 Swift);句柄式资源(JSON/列表/哈希表)仍手动释放。

文档

从安装到给 AI 看的速成规则,按「入门 → 语言 → 标准库 → 生态」组织。

快速开始

下载解压即用——bin/qi 会自动找到同包的运行时。

1 · 下载 2026.07.09-1

全部版本见 GitHub Releases,亦有 一键安装脚本 与 pkg/msi 安装器。macOS 编译链接需 Xcode 命令行工具(xcode-select --install);Linux 需 clang。

2 · 写第一个程序

$ tar xzf qi-2026.07.09-1-macos-arm64.tar.gz
$ cat > 你好.qi << 'EOF'
包 主程序;

函数 入口() {
    打印行("你好, 奇语言!");
}
EOF
$ ./bin/qi run 你好.qi
你好, 奇语言!
$ ./bin/qi 运行 你好.qi    # 中文命令等价
你好, 奇语言!

常见问题

直球回答,不绕弯。

这是玩具项目吗?

不是。奇语言有 LLVM 21 原生后端、ARC 自动内存管理、完整异常机制、Go 风格 M:N 协程、30+ 标准库模块、包管理器 qi get、交叉编译、LSP + VSCode 扩展、测试框架与三平台 CI——外加 155 个可运行示例和用它自己写成的 Web/CLI/Agent 框架。

性能到底如何?

同机实测:fib(40) 0.28s,快过 Go 1.26(0.32s)约 15%,是 Node 24(0.71s)的 2.5 倍;qi-web 147k RPS,达 Go net/http 的 90%,为 Node 单进程的 2 倍。数据可复现,基准脚本在仓库里。

怎么安装?

三种方式:① 下载 2026.07.09-1 预编译包 解压即用;② 一键脚本 curl -fsSL https://raw.githubusercontent.com/qilang-project/qi/main/scripts/install.sh | bash;③ macOS pkg / Windows msi 安装器。macOS 需 Xcode 命令行工具,Linux 需 clang。

这不就是刻板印象里的"中文编程"吗?

刻板印象里的中文编程是图形化拖拽或解释器贴皮。奇语言的中文只在词法层:代码经 LALRPOP 解析、LLVM 21 生成原生机器码,与 Rust/Go 走同一条工业管线。中文关键字消除的是母语者读代码时的翻译损耗,不是替代计算机科学。

内存需要手动管理吗?

不需要。ARC(自动引用计数)默认开启,字符串/结构体/数组/闭包自动回收;QI_RC_REPORT=1 可在退出时打印活跃对象数自查。句柄式资源(JSON/列表/哈希表句柄)仍需手动释放;循环引用不回收(同 Swift),长驻进程注意打破环。

AI / Agent 能直接写奇语言吗?

能,而且是一等公民:llms.txt(速成规则)与 llms-full.txt(完整语言参考)供模型抓取;npx skills add https://github.com/qilang-project/qi-lang 安装 agent skill;文档站有 给 AI / Agent 专页。

生态

编译器之外,一圈用奇语言写的框架与配套工程。