可以将 Rust 理解为 C 的直接替代品,提供了系统级的性能,而且在很多方面更好,最常提到的就是内存安全,并且可以与遗留 C 代码原生互操作以进行增量替换。
Rust 语言最初只是 Mozilla 员工 Graydon Hoare 在 2006 年创建的一个业余项目,在 2015 年,Mozilla 发布了 Rust 的首个稳定版本 v1.0 成为 Rust 一个重要的里程碑。
做一个 Rustacean 吧。
简介
包管理
基本语法
- 语法简介 介绍常见的语法,例如变量、结构体、循环、函数、注解等等,其中 字符串 单独介绍 (含动态数组)。
- 结构体详解 包含了基本的定义,以及使用技巧。
- 高级语法 包括范型、闭包、迭代器、宏编程、Trait 等,也包括了常用特征、迭代器生命周期、PhantomData 整理。
- 生命周期 这也是 Rust 的核心功能,以此支持安全编程。
- 模式匹配 这是 Rust 中的一种控制流语句,语法简单但是提供了很多复杂的功能,这里详细介绍。
- 错误处理 相比其它语言来说略有区别,这里主要介绍常用的 Option 以及 Result 处理。
- 内存管理 主要包括了 Clone、Copy、Drop 等操作的介绍。
- 集成测试 包含了基础的单元测试。
- 智能指针
异步 VS. 并发
异步编程是一个并发编程模型,当前大部分语言都已经支持,只是实现方式略有不同。
- 并发简介 与并发编程相关的一些基本概念,主要还是传统线程级的并发编程。
- 异步详解 介绍 Rust 中异步或者 Future 相关的基本概念,也包括 Pin Unpin 的介绍。
- 流式编程 有类似 Stream 的实现,但是采用的是异步方式。
Tokio
FFI
Foreign Function Interface, FFI 用来与其它语言进行交互的接口,这里简单介绍,同时包含不同语言调用的常见示例。
- 基本概念 不同语言相互调用定义。
- C/C++ 相关的调用,当前主要是 C 语言,包括了 C 调用 Rust、Rust 调用 C。
- Python 直接通过 PyO3 实现,包含了一整套的工具包。
- Java 直接通过 JNI 实现,包含了一整套的工具包。
常用三方库
- log 与日志相关的常用三方库使用方式,同时也包含了 Trace 相关的内容。
- clap 一个简单易用,功能强大的命令行参数解析库。
- iced 跨平台的 GUI 编程框架。
- rayon 一个并行执行库,在函数编程中可以很简单的实现并行计算。
- serde 通用的序列化、反序列化框架。
- chrono 用于时间处理的实现,除了这个库之外,同时包含
std::time
部分使用。 - crossterm 不错的跨平台 Terminal 库。
参考
- play.rust-lang.org 在线的运行页面,可以用作展示简单程序示例,也可以使用 godbolt.org 。
- crates.io 官方的包仓库,可以用来搜索需要的库,以及对应最新版本。
- RFCs Rust 语言的各个设计提案,可以详细查看其具体特性后面的设计原理。
- Rust Wiki 很不错的中译版文档,极力推荐,还有 死灵书、Inside Rust Blog 有很多内部机制相关文章。
- Guillaume Endignoux 有很多不错的文章,包括了异步编程、SIMD、Docker 中 Perf、Rayon 并发等等。