Skip to content

ADR-0001: 使用 Rust 作为核心语言

  • 状态:已接受
  • 日期:2026-06-10
  • 决策者:AXON 架构组

背景

AXON 是一个事件驱动的交易引擎,对延迟、吞吐和内存安全有极高要求。 我们需要在性能与工程效率之间做出选择。

评估

维度 Rust C++ Python Go
性能 接近 C++ 最高
内存安全 编译期保证 手动 GC GC
并发 所有权模型 复杂 GIL goroutine
生态 growing 成熟 极丰富 良好
开发效率
学习曲线 陡峭 陡峭 平缓 平缓

决策

采用 Rust 作为 AXON 核心引擎的实现语言。

理由:

  1. 零成本抽象:在保证抽象能力的同时不牺牲性能
  2. 编译期内存安全:消除数据竞争与 use-after-free
  3. 无 GC 抖动:适合延迟敏感场景
  4. 现代包管理:Cargo 显著优于 C++ 现有方案
  5. 与 PyO3 良好集成:可同时提供 Python RL 接口

后果

正面

  • 性能可与 C++ 方案相当
  • 类型系统与借用检查器在编译期消除大量 bug
  • 生态对金融与系统编程领域有良好支持

负面

  • 编译时间较长
  • 学习曲线较陡,团队需要适应期
  • 部分领域(GUI、可视化)生态尚不成熟

缓解

  • 通过增量编译与 sccache 加速构建
  • 建立 Rust 培训与 code review 机制
  • GUI 类需求通过 Web 前端实现

参考