rust学习资源与进阶资料

基础

  • The Rust Programming Language
  • Rust by Example
    • 实例化的讲解方法,通过一个个可实际运行的例子去介绍 Rust 的特性和用法,有的时候,代码是最好的老师。
    • 中文版
  • The Rust primer for beginners
    • 给初学者的 Rust 中文教程。
  • Rust 入门秘籍
    • 这是一本 Rust 的入门书籍,相比官方书籍《The Rust Programming Language》,本书要更详细、更具系统性,本书也尽量追求准确性。
  • Rust First Steps
    • 微软的 Rust 教程,简短精炼,适合初学者。
    • 官方中文
  • Rust Cookbook
  • Rustlings
    • 官方出品,涵盖大量小练习,打怪通关学习 Rust。
    • Jetbrains IDE 可以直接下载课程,编辑器内写代码做练习。
  • Learning Rust With Entirely Too Many Linked Lists
    • 通过写双链表来学习 Rust
  • Read Rust - Getting Started
    • Read Rust 是一个集合了有价值的 Rust 文章 / 博客的网站,其中 Getting Started 部分有各种 Rust 知识点相关的十分优秀的文章。
  • Stanford CS 110L:Safety in Systems Programming
  • Rust 语言圣经 (Rust 教程 Rust Course)
    • rust-course 国人写的 Rust 教程,对 Rust 语言进行全面且深入的讲解,书中辅以生动的示例和习题。
  • Rust 官方文档中文教程
    • rust-lang-cn 组织翻译的官方文档,另外这个组织也翻译了很多 Rust 相关的书籍。
  • Visualizing memory layout of Rust’s data types
    • 可视化了 Rust 的类型在内存中的布局,入门必看。
  • Rust 实践指南
    • zzy/rust-guide 《Rust 实践指南》,聚焦重要的主题,展示可能的解决方案。以开发中的实际问题为导向,以优雅的解决方案为目标,以完整的实例实践解决方案。
  • Bilibili:软件工艺师
  • Rust Language Cheat Sheet
  • quickref.me Rust cheatsheet
    • quickref.me 是一个汇聚了大部分语言的语法索引页,其中也包含了 Rust, 可以帮助大家快速找到想用的语法。
  • rust-lang/api-guidelines
    • 中文版:Rust API 编写指南 这是一组关于如何设计和呈现 Rust APIs 的建议。 这些建议主要由 Rust library 团队编写, 总结了 Rust 生态下构建标准库和其他 crates 的经验。
  • 《Programming Rust, 2nd Edition》简单的翻译
    • 第一版图灵社区有翻译:Rust 程序设计,第二版多了两章,可以考虑买第一版的电子版 pdf。
  • rustlang-cn/Rustt
    • RustCn 翻译计划,翻译一些 Rust 的技术文章。
  • suhanyujie/article-transfer-rs
    • 一些 Rust/Go 文章翻译

进阶

  • Rust Standard Library Reference

  • The Rust Reference

    • Rust 语言的 reference manual,你应该收藏好,以便于在对某个语言细节不清楚时在这里进行查阅。
    • 中文版
  • The unsafe Book

  • The Rustonomicon

    • Rust 死灵书主要讲 Rust 高级特性,如何使用 unsafe Rust。
    • 中文版
  • The Little Book of Rust Macros

    • 对于 Rust 宏有详细的讲解,里面的注释很全面。
    • 中文版
  • smallnest/concurrency-programming-via-rust 《Rust 并发编程实战课》

    • 《Go 并发编程实战课》的作者鸟窝系统整理的 Rust 的并发编程的相关资料。主要是从入门入手,让大家了解和熟悉这些并发原语,在工作中用起来。
    • 另外,mouse 姐姐也有相关的书将要出版《Rust Atomics and Locks: Low-Level Concurrency in Practice》
  • Asynchronous Programming in Rust

  • A Guide to Porting C/C++ to Rust

  • The Rust FFI Omnibus

    • 使用 Rust 编写代码用到其他语言的示例集合.
    • 中文版
  • Jon Gjengset YouTube Channel (Crust of Rust Playlist)

  • Rust Design Patterns

    • 有许多问题具有共同的形式。由于事实上 Rust 并不完全是面向对象的,设计模式也与其他面向对象的编程语言不同。 细节不同的同时,因为他们有相同的形式,他们可以用同样的基本方法解决。
    • 中文版
  • The Rust Performance Book

    • 介绍很多优化 Rust 程序性能的工具、技巧、调试方法等方面的书。
  • Problem-solving with algorithms and data structures using Rust

    • 国人写的一本 Rust 书籍,包括算法分析,基本数据结构和算法,外加一些实战。
  • Rust 源码剖析 中文版

    • 国人写的一本 Rust 书籍,针对 Rust 语言本身和开源库的代码进行分析。
  • dtolnay/case-studies

    • dtolnay 是 anyhow, thiserror, cxx 等库的作者,这是他对一些 tricky Rust code 的分析。
  • Bilibili:Databend

    • Databend 社区持续做了不少 Rust 的公开课。仓库地址
  • Bilibili:爆米花胡了

    • 这个 up 主做了很多 Rust 过程宏的视频教程。
  • Bilibili:喜欢历史的程序君

    • 陈天在极客时间开了门 Rust 的课,同时也在持续输出一些 Rust 视频教程。
  • KAIST CS431: Concurrent Programming

    Github repo

    • 本课程面向对并行计算机系统的现代理论和实践感兴趣的计算机科学(或相关学科)的高年级本科生(或研究生)。
  • Rust for the Polyglot Programmer

    • 面对有经验的程序员的 Rust 指南。
  • High Assurance Rust: Developing Secure and Robust Software

    • 本书介绍了如何构建我们可以合理信任 (justifiably trust) 的高性能软件。这意味着有足够的数据来支持对我们代码的功能和安全性的信心。可信性是高安全性 (high assurance) 软件的一个标志。
  • Warrenren/inside-rust-std-library

    • 本书主要对 Rust 的标准库代码进行分析。按照内存相关,基本数据类型,ops Trait, Option 类型,Result 类型,Iterator,切片类型,智能指针类型等逐一进行源码分析。

有潜力的教程

练习实战的小项目

  • 知乎 - 学习 Rust 适合写什么练手项目?

  • Exercism.io

  • course-rs/tokio-course

    • 《Tokio 异步编程》翻译并扩展了 tokio 官网的教程, 深入讲述了如何编写 Rust 高并发异步程序
  • Github: cfsamson

    • 这哥们喜欢用 Rust 实现一些小例子如:Futures、greenthreads、async、epoll 等。
  • Boshen/javascript-parser-in-rust

    [2022.08]

    • A book on writing a JavaScript Parser in Rust
  • 2022 年开源操作系统训练营

    [2022.07]

    • 教程共分为八章,主要展示如何从零开始,用 Rust 语言写一个基于 RISC-V 架构的类 Unix 内核。
  • Writing a container in Rust

    [2022.05]

    • 用 Rust 写容器。
  • Lisp interpreter in Rust

    [2022.05]

    • lisp-rs 项目用 Rust 实现了一个解释器,用于 Scheme 的一个小子集,即 Lisp 方言。
  • Implementing a size-bounded LRU cache with expiring entries for my DNS server (in Rust)

    [2022.03]

    • 使用 Rust 实现一个有大小限制可过期的 LRU 缓存。
  • Implementing and Optimizing a Wordle Solver in Rust

    [2022.03]

    • Jon Gjengset 的六小时一镜到底视频流教程,这次是实现一个 Wordle 求解器。
  • Writing a Programming Language (in Rust) [2022.02 updating]

  • Implementing the NTFS filesystem in Rust [2022.02]

  • Rust Latam: procedural macros workshop

    [2022.01 updating]

    • 实战学习写 Rust 过程宏。
  • Rust Runtime 设计与实现

    [2021.12]

    • 系列文章主要介绍如何设计和实现一个基于 io-uring 的 Thread-per-core 模型的 Runtime。
  • Building a GUI app in Rust

    Building a web app in Rust

    [2021.10]

    • 作者用 egui 库去实现了 newsapi 的客户端和网页端(WebAssembly)。
  • Rust 过程宏入门

  • (Risp (in (Rust) (Lisp)))

    [2021.07]

    • Rust 实现 Lisp 解释器
  • Learning to Fly: Let’s simulate evolution in Rust! (pt 1)

    [2021.01]

    • 利用神经网络和遗传算法创建一个进化模拟,并编译应用程序到 WebAssembly
  • Building a Pixel Editor in Rust & WebAssembly (and Javascript)

    [2020.08]

    • 作者用 Rust 和 WebAssembly 做了个网页端的简陋版像素画板。
  • Writing NES Emulator in Rust

    [2020.08]

    • Rust 实现 NES 模拟器,不过最后一章到现在还是 todo。
  • Building a DNS server in Rust [2020.06]

  • pingCAP/talent-plan

    [2020.05] Rust 网络编程

  • Writing an OS in Rust 部分中文版 [2020.05]

  • PNGme: An Intermediate Rust Project [2019.06]

  • Implementing TCP

    [2019.05]

    • 强烈推荐!Jon Gjengset 通过 Linux TUN/TAP 来实现 TCP 协议。三个视频加起来共 16 小时。
    • 这个 up 主视频风格独特,内容有深度,录像不剪辑,每集时间巨长,好处就是可以了解一个完整项目的开发过程和解决问题的思路。
  • Learning Parser Combinators With Rust [2019.04]

  • Build Your Own Shell using Rust [2018.11]

  • So You Want to Build a Language VM [2018.07]

游戏开发相关

其他领域相关

Rust 动态

各种汇总(Awesome 系列)

  • Awesome Rust [A curated list of Rust code and resources]
    • 针对 Rust 语言的 awesome lists,这里面汇集了各种各样的 Rust 库和资源,去参与或学习开源项目是当你入门后最好的进阶方法。
  • rust-learning
    • 一个由社区维护的关于学习 Rust 的资源的汇总。
  • EthanYuan/Rust-Study-Resource
    • 又是一个关于学习 Rust 的资源的汇总。
  • The Little Book of Rust Books
    • Rust 相关书籍的汇总。
  • sger/RustBooks
    • Rust 相关书籍的汇总。
  • sunface/fancy-rust
    • Rust 酷库推荐。使用我们精心挑选的开源代码,让你的 Rust 项目 Fancy 起来!
  • EvanLi/Github-Ranking
    • Github 中 Rust 库星星排名的 Top 100,每日刷新。
  • 35 Rust Learning Resources Every Beginner Should Know in 2022
    • 一篇推荐新手资源的文章

Podcast

  • Rustacean Station Podcast
  • RustTalk
    • 主播:写代码的西瓜
    • Rust 语言中文社区 是一个相比干货分享的地方,偏文字,RustTalk 更侧重 “湿货”,不仅仅会介绍到 Rust 的设计理念,更多的回去挖掘 Rust 背后的奇人轶事。

博客

  • https://llever.com/
    • 包含很多 Rust 周报及相关博文的翻译,不过现在好像不更新了。
  • 芽之家
    • 同样是包含很多 Rust 周报及相关博文的翻译,同样好像不更新了😓

博客 RSS

名称 订阅链接
This Week in Rust https://this-week-in-rust.org/atom.xml
Read Rust https://readrust.net/all/feed.rss
Rust Reddit Hot https://reddit.0qz.fun/r/rust/hot.json
Rust.cc https://rustcc.cn/rss
Awesome Rust Weekly https://rust.libhunt.com/newsletter/feed
Rust 精选 https://rustmagazine.github.io/rust_magazine_2021/rss.xml
Rust on Medium https://medium.com/feed/tag/rust
Rust GameDev WG https://gamedev.rs/rss.xml
知乎专栏 - 时光与精神小屋 https://rsshub.app/zhihu/zhuanlan/time-and-spirit-hut
酷熊 Amos fasterthanli https://fasterthanli.me/index.xml
pretzelhammer/rust-blog https://www.ncameron.org/blog/rss/
Nick Cameron https://github.com/pretzelhammer/rust-blog/releases.atom
FOLYD https://folyd.com/blog/feed.xml
Alex Chi https://www.skyzh.dev/posts/index.xml

作为参考的学习路线

路线 1

Rust Study RoadMap

作者在文中提供了两种学习路线。

路线 2

  1. 通读 Rust by Example,把其中的例子都自己运行一遍,特别是对其中指出的错误用法也调试一遍。
  2. 通读 The Rust Programming Language,在进行了第一步后,已经基本对 Rust 的常用概念有所了解了,这个时候再读这本官方教程,进一步理解某些细节。
  3. 行了,到这一步后你就可以尝试做一个项目了,然后在做项目的过程中你一定会需要各种各样的库,请到 Crates 上搜索,寻找适合你需求的 crate,了解它们的用法,必要时查阅它们的源码。一开始写实际代码时,你肯定会很痛苦,Rust 编译器一定会不断地折磨你,这个时候不要放弃,返回去再看 Rust by ExampleThe Rust Programming Language,然后终有通过编译的那一刻,恭喜你,入坑了!

常用站点

  • Crates
    • Rust 类库
  • Docs.rs
    • Rust 类库文档
  • Are we game yet
    • 关于游戏开发
  • Are we web yet
    • 关于 Web 开发
  • Are we (I)DE yet
    • 关于 IDE
  • rust-library-i18n
    • Rust 中文文档,可以在 IDE 中使用

其他资料

本文参考

本文转载转载自萤火之森