文档目前只有中文。
0001. 核心用 Rust
状态:接受日期:2026-10-08
背景
核心负责并发下载、哈希、解压、JSON、OAuth、进程管理,要求体积小、性能高、能交叉编译到 riscv64 与 loongarch64。代码主要由 AI 编写,需要编译器尽可能多地拦截错误。
决定
核心用 Rust。
备选与放弃理由
- C++:体积小约 2 MB,但没有统一的 HTTP、JSON、压缩标准库,必然引入 libcurl、OpenSSL 等多个独立构建系统的 C 依赖;AI 写的内存错误编译器拦不住,需要三种 sanitizer 兜底;交叉编译到小众架构要逐个搭 sysroot。
- C:功能齐全的启动器要手写半个基础设施,周期不可控。
- Go:GC 与运行时导致体积与内存明显更大;对 AI 写代码的编译期约束弱于 Rust。
后果
- 二进制约 4 到 5 MB,可接受。
- 依赖必须按 ADR 0007 准入。
- 已有 Modrinth App 核心库 Theseus 验证这条路线可行。
源文件
docs/adr/0001-rust-core.md
更新于 2026-10-08