ADR-0001: 使用 Rust 作为核心语言¶
- 状态:已接受
- 日期:2026-06-10
- 决策者:AXON 架构组
背景¶
AXON 是一个事件驱动的交易引擎,对延迟、吞吐和内存安全有极高要求。 我们需要在性能与工程效率之间做出选择。
评估¶
| 维度 | Rust | C++ | Python | Go |
|---|---|---|---|---|
| 性能 | 接近 C++ | 最高 | 低 | 中 |
| 内存安全 | 编译期保证 | 手动 | GC | GC |
| 并发 | 所有权模型 | 复杂 | GIL | goroutine |
| 生态 | growing | 成熟 | 极丰富 | 良好 |
| 开发效率 | 中 | 低 | 高 | 高 |
| 学习曲线 | 陡峭 | 陡峭 | 平缓 | 平缓 |
决策¶
采用 Rust 作为 AXON 核心引擎的实现语言。
理由:
- 零成本抽象:在保证抽象能力的同时不牺牲性能
- 编译期内存安全:消除数据竞争与 use-after-free
- 无 GC 抖动:适合延迟敏感场景
- 现代包管理:Cargo 显著优于 C++ 现有方案
- 与 PyO3 良好集成:可同时提供 Python RL 接口
后果¶
正面¶
- 性能可与 C++ 方案相当
- 类型系统与借用检查器在编译期消除大量 bug
- 生态对金融与系统编程领域有良好支持
负面¶
- 编译时间较长
- 学习曲线较陡,团队需要适应期
- 部分领域(GUI、可视化)生态尚不成熟
缓解¶
- 通过增量编译与
sccache加速构建 - 建立 Rust 培训与 code review 机制
- GUI 类需求通过 Web 前端实现