【专题】Rust 编程语言

2010-10-16 topic language rust

可以将 Rust 理解为 C 的直接替代品,提供了系统级的性能,而且在很多方面更好,最常提到的就是内存安全,并且可以与遗留 C 代码原生互操作以进行增量替换。

Rust Logo

Rust 语言最初只是 Mozilla 员工 Graydon Hoare 在 2006 年创建的一个业余项目,在 2015 年,Mozilla 发布了 Rust 的首个稳定版本 v1.0 成为 Rust 一个重要的里程碑。

做一个 Rustacean 吧。

简介

  • 基本介绍 介绍环境搭建、常用工具的使用等,同时包含了编译优化,常用命令、三方库等。
  • 标准库简介 包含了常见的字符串、数组、智能指针等等。

包管理

  • 基本概念 包通过 Cargo 管理,这里详细介绍其使用方法。
  • 模块文件 这里会详细介绍 Rust 中模块和文件的映射关系。

基本语法

异步 VS. 并发

异步编程是一个并发编程模型,当前大部分语言都已经支持,只是实现方式略有不同。

  • 并发简介 与并发编程相关的一些基本概念,主要还是传统线程级的并发编程。
  • 异步详解 介绍 Rust 中异步或者 Future 相关的基本概念,也包括 Pin Unpin 的介绍。
  • 流式编程 有类似 Stream 的实现,但是采用的是异步方式。

Tokio

FFI

Foreign Function Interface, FFI 用来与其它语言进行交互的接口,这里简单介绍,同时包含不同语言调用的常见示例。

  • 基本概念 不同语言相互调用定义。
  • C/C++ 相关的调用,当前主要是 C 语言,包括了 C 调用 RustRust 调用 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 并发等等。