Coding to Rust — 多语言迁移到 Rust 的技能集合
项目介绍
Coding to Rust 是一个 Claude Code 技能集合,覆盖从 16 种主流编程语言迁移到 Rust 的完整指南。每种语言提供:
- 架构映射 — 运行时差异、范式转换、内存模型对照
- 类型系统对照表 — 30-80 条精确的类型/语法映射
- 框架迁移指南 — 主流框架到 Rust 生态的对照(如 Django→Axum、Spring→Actix)
- 标准模式对照 — 带代码示例的 before/after 对比
- 常见错误 — 该语言开发者在 Rust 中最容易犯的错误及修复方法
- FFI 渐进迁移策略 — 分阶段替换方案
- 参考实现 — 真实世界的迁移案例和项目
覆盖语言
| # | 语言 | 目录 | 核心范式转换 |
|---|---|---|---|
| 1 | Python | python-to-rust/ |
GIL→真并行、asyncio→tokio、numpy/pandas→ndarray/polars |
| 2 | JavaScript/TypeScript | nodejs-to-rust/ |
事件循环→tokio、V8→AOT、Express→Axum |
| 3 | Go | go-to-rust/ |
goroutine→tokio task、channel→mpsc、GC→所有权 |
| 4 | Java | java-to-rust/ |
JVM→原生二进制、Spring→Axum、JPA→sqlx |
| 5 | C# | csharp-to-rust/ |
CLR→原生、LINQ→迭代器、ASP.NET→Axum |
| 6 | PHP | php-to-rust/ |
动态类型→静态类型、FPM→长驻进程、Laravel→Axum |
| 7 | C | c-to-rust/ |
malloc/free→所有权、指针→引用、头文件→模块 |
| 8 | C++ | cpp-to-rust/ |
模板→泛型、虚函数→trait、移动语义→所有权 |
| 9 | Zig | zig-to-rust/ |
comptime→宏、分配器→所有权、错误集→Result |
| 10 | Lua | lua-to-rust/ |
table→struct/enum、元表OOP→trait、coroutine→async |
| 11 | R | r-to-rust/ |
data.frame→polars、formula→builder、apply→迭代器 |
| 12 | Julia | julia-to-rust/ |
多重分派→trait、JIT→AOT、Array→ndarray |
| 13 | Kotlin | kotlin-to-rust/ |
Coroutines→tokio、data class→struct、sealed class→enum、Gradle→Cargo |
| 14 | Swift | swift-to-rust/ |
ARC→ownership、actor→Mutex、protocol→trait、SwiftUI→Leptos |
| 15 | Ruby | ruby-to-rust/ |
GC→ownership、blocks→closures、Rails→Axum、Bundler→Cargo |
| 16 | Vue | vue-to-rust/ |
:warning: (前端/WebAssembly — 非后端) SFC→组件函数、ref()→RwSignal、Vite→Trunk |
项目架构
1 | coding-to-rust/ |
设计原则:
- 索引入口 —
SKILL.md作为总入口,Claude Code 根据关键词自动加载 - 独立可读 — 每个语言目录的
SKILL.md可独立使用,不依赖其他文件 - 渐进深度 — 快速对照表(索引层)→ 架构映射(概念层)→ 代码示例(实操层)→ 参考项目(验证层)
- 交叉引用 — 各语言互相引用共享模式(如 Python 的 asyncio 和 Go 的 goroutine 都映射到 tokio)
使用说明
触发方式
在 Claude Code 对话中,以下任何一种说法都会自动加载此技能:
- 「把这段 Python 代码迁移到 Rust」
- 「用 Rust 重写这个 Go 服务」
- 「Java 的 Spring Boot 怎么用 Rust 实现」
- 「Port this C++ class hierarchy to Rust」
- 「Migrate Node.js Express app to Rust」
使用流程
- 自动加载 — Claude Code 识别到迁移需求,加载
coding-to-rust/SKILL.md - 快速对照 — 查看你所用语言的 6-8 条核心映射,快速理解大致对应关系
- 深入查阅 — 需要代码示例、框架详细对照时,Claude 自动读取对应语言的详细
SKILL.md - 交叉参考 — 涉及多语言共享模式时,通过交叉引用链接到其他语言的对应章节
推荐的迁移顺序
无论哪种源语言,建议按以下顺序执行迁移:
| 阶段 | 内容 | 方法 |
|---|---|---|
| 1 | 数据类型 | 定义对应的 Rust struct/enum,通过 JSON/Protobuf schema 共享 |
| 2 | 纯函数 | 先迁移无状态逻辑,无外部依赖,最容易编写测试 |
| 3 | I/O 边界 | 替换 HTTP handler、数据库查询、文件读写 |
| 4 | 并发模型 | 将线程/协程/异步任务统一转换为 tokio task |
| 5 | 完全切换 | 移除源语言运行时,仅保留 FFI 桥接做兼容过渡 |
文件大小参考
| 层级 | 对应文件 | 规模 | 适用场景 |
|---|---|---|---|
| 轻量 | 索引层快速对照表 | ~8 行/语言 | 快速查询,确认基本映射 |
| 中等 | 索引层通用概念 | ~60 行 | 理解 Rust 核心范式 |
| 详细 | 各语言 SKILL.md | 600-1000 行 | 深度迁移、代码示例、框架对照 |
贡献
如需新增语言、修复错误或改进示例代码,请编辑对应语言的 SKILL.md 文件,并同步更新 coding-to-rust/SKILL.md 索引中的快速对照表和链接。
本文作者:
艾瑞可erik
本文链接: https://erik.xyz/2026/07/30/coding-to-rust/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!
本文链接: https://erik.xyz/2026/07/30/coding-to-rust/
版权声明: 本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可。转载请注明出处!