rust 学习
rust 学习资源
官方参考:
- Rust 官网:https://www.rust-lang.org/
- Rust 发布版本查阅:https://releases.rs/
- Rust 语言参考:https://doc.rust-lang.org/reference/
- 官方 Rust The Book: https://doc.rust-lang.org/book/
其他总结:
- Rust 语言之旅:https://tourofrust.com/TOC_zh-cn.html
- Ferrocene 语言规范:https://spec.ferrocene.dev/
- Rust 语言圣经:https://course.rs/about-book.html
rust 工具和相关生态
- Crates 仓库: https://crates.io/
- Cargo 工具
- cargo 插件介绍
- cargo-clippy: https://github.com/rust-lang/rust-clippy
- cargo-vet: https://mozilla.github.io/cargo-vet/
- Rust 语言 、 Rust for linux 和 wasmtime / tauri /slint 开源项目:
本地开发环境
编辑器/IDE 推荐
- vscode + rust-analyzer插件 + copilot(可选)
- clion
- helix(开源类 vim ,rust实现)+ ra插件
Rust 镜像
- 字节跳动镜像源 https://rsproxy.cn/
rust在线调测工具
- Rust playground 支持单个 Rust 文件,可以方便地在线练习 Rust 语法 和 共享代码进行交流: https://play.rust-lang.org/
- Replit 支持cargo 和 crate,功能较为丰富。https://replit.com/languages/rust
- Godbolt,支持 Rust ,可以查看编译后汇编。https://godbolt.org/
rust测试
- Rust by example: https://doc.rust-lang.org/rust-by-example/
- Rustlings (Rust 知识检测):https://github.com/rust-lang/rustlings
- Rust Quiz (Rust 知识检测) https://github.com/dtolnay/rust-quiz
设计原则
面向用户
- 可靠性 Reliable
- 如果编译成功,就可以正常工作
- 类型安全
- 不隐式转换
- 高性能 Performant
- 既高效又能保证性能,零成本抽象
- 所有权,内存安全的保证
- 迭代器
- 闭包
- 异步
- 模块性问题
- 动态分发?
- 支持性
- 语言、工具、社区支持
- 错误提示、修正很完善
- 生产力
- 和高性能是有冲突的
- 透明性
- 暴露底层的细节
- 多样性
- 嵌入式等领域
面向社区
- 信任和委托
- 贡献
金发姑娘原则
适合的才是最好的。金发姑娘和三只熊的故事,选择了不冷不热的粥,不软不硬的椅子, 不大不小的床
源码结构
crates
- alloc 内存分配相关,一般做嵌入式的时候使用
- core 核心库,一般做嵌入式的时候使用
- std 在核心库的基础上增加一些功能
编译过程
前端 Rustc | 后端 |
---|---|
先编译成Token -> AST 抽象语法树 -> HIR 高级中间语言 -> MIR 中级中间语言 -> LLVM IR | LLVM asm |
Cranelift Debug模式下使用 | |
GCC release 正在支持 | |
GCC 前端支持rust | GCC 后端 |
过程 | 描述 |
---|---|
Token | |
AST | |
HIR | |
MIR | 代码安全检查,静态分析工具等 |
LLVM IR |