rust-for-java 是一个面向 Java 开发者的 Rust 学习仓库。它把“可运行的 Rust 项目”和“可拆解的学习实验”放在同一个 workspace 里,方便你一边看代码,一边跑命令,一边建立 Rust 的思维模型。
这个仓库的核心分成两部分:
task-domain、task-api、task-cli组成一个小型任务系统labs/java-to-rust提供针对 Java 开发者的可运行练习
目标不是“看懂所有 Rust”,而是 30 分钟内把仓库跑起来,知道每个 crate 的职责,并且能改动一处代码后重新验证。
仓库使用 stable Rust。先确认 cargo 可用:
cargo --version
rustc --versioncargo test --workspace这一步会验证:
task-domain的领域规则task-api的 HTTP 行为task-cli的命令行行为labs/java-to-rust的练习代码
cargo run -p task-api默认监听 127.0.0.1:3000。如果你需要改端口,设置 PORT:
$env:PORT = 3001
cargo run -p task-api另开一个终端,先看帮助:
cargo run -p task-cli -- --help再调用健康检查:
cargo run -p task-cli -- healthcargo run -p task-cli -- add "learn ownership"
cargo run -p task-cli -- list
cargo run -p task-cli -- complete <TASK_ID><TASK_ID> 取自 list 返回的 id 字段。
如果服务不在默认地址上,设置 TASK_API_URL:
$env:TASK_API_URL = "http://127.0.0.1:3001"
cargo run -p task-cli -- listcargo run -p java-to-rust --example ownership如果你只做 30 分钟内最关键的事,顺序就是:
cargo test --workspacecargo run -p task-apicargo run -p task-cli -- healthcargo run -p task-cli -- add "learn ownership"cargo run -p task-cli -- listcargo run -p java-to-rust --example ownership
| 路径 | 作用 | 你会学到什么 |
|---|---|---|
crates/task-domain |
共享领域模型 | 新类型、Result、验证、thiserror、可序列化的领域对象 |
apps/task-api |
Axum HTTP 服务 | 路由、状态注入、JSON、错误映射、Tokio 启动方式 |
apps/task-cli |
CLI 客户端 | clap 派生、环境变量、reqwest 请求、子命令 |
labs/java-to-rust |
练习区 | 所有权、借用、迭代器、trait、错误、async |
docs/ |
学习文档 | 12 周路线图、Java 到 Rust 的心智映射、专项说明 |
- 先读
docs/java-to-rust.md - 再读
docs/ownership.md和docs/errors-and-types.md - 然后读
docs/async-web.md - 最后按
docs/roadmap.md练 12 周
这些链接是理解本仓库依赖的起点:
- Rust Book: https://doc.rust-lang.org/book/
- Async Book: https://rust-lang.github.io/async-book/
- Axum: https://docs.rs/axum/latest/axum/
- Tokio: https://docs.rs/tokio/latest/tokio/
- Clap: https://docs.rs/clap/latest/clap/
- Reqwest: https://docs.rs/reqwest/latest/reqwest/
- Serde: https://serde.rs/
- thiserror: https://docs.rs/thiserror/latest/thiserror/
- uuid: https://docs.rs/uuid/latest/uuid/
- 把
task-domain当成“先设计好类型,再写业务”的样板 - 把
task-api当成“服务端最小可运行架构”的样板 - 把
task-cli当成“Rust CLI + HTTP 客户端”的样板 - 把
labs/java-to-rust当成“Java 经验迁移到 Rust”的样板
如果你的目标是成为顶级 Rust 开发者,记住一件事:
没有捷径。 你可以很快跑起来,但顶级能力只能通过长期读源码、写测试、做设计、修 bug、复盘和重复练习建立起来。