C 能做到的一切 Rust 都能做得更好
C++ 和 Rust 都是系统编程语言,可用于开发软件和软件平台。它们都能够与低级组件(例如操作系统或微控制器上的固件)交互,或者在高级别进行应用程序开发。
在 Android 12 中,我们宣布 Android 平台支持 Rust 编程语言,将其作为 C/C++ 的内存安全替代方案。从那时起,我们一直在 Android 开源项目 (AOSP) 中扩展 Rust 的使用体验和应用。
- Android 团队(谷歌)2022
Rust 正在逐渐取代 C++,你还在等什么?你开始学习 Rust 了吗?
Rust 学习:
目录
- 图书
- 视频
- 播客
- Rust 实践
- 最佳实践/风格指南
- 备忘单
- Rust 内部
- 汇编
- 外国金融机构
- CI / 测试
- 调试/分析
- 我们...已经嗎?
- 与其他语言的比较
- 应用程序/库/工具
- 语言方面
- 操场
- 区域设置链接
- 人们
- 教程和研讨会材料
图书
- ⭐ Rust 编程语言- repo
- ⭐ Rust 参考- repo
- ⭐ Rustonomicon - 高级且不安全的 Rust 编程的黑暗艺术- repo
- ⭐不稳定的书- repo
- ⭐ Rust 版指南- repo
- ⭐ Rust Async 书籍- repo
- ⭐ Rust Cookbook -仓库
- ⭐为什么选择 Rust? - Jim Blandy
- ⭐嵌入式 Rust 书籍- repo - Rust 嵌入式工作组
- Rust-101 - Ralf Jung
- Rust 精要- Ivo Balbaert
- Rust 编程- Jim Blandy、Jason Orendorff
- 掌握 Rust - 第二版- Rahul Sharma 和 Vesa Kaihlavirta
- 🔜重构为 Rust - repo - Nate Mara
- ⭐ Rust 选集- Brian Anderson
- 🔜 Rust 实战- repo - Tim McNamara
- 🔜 Rust 从零到生产- repo - Luca Palmieri
- Rust 中的网络编程- Abhishek Chanda
- 学习 Rust - Paul Johnson、Vesa Kaihlavirta
- Rust 食谱- Vigneshwer Dhinakaran
- 学习 Rust - Dumindu Madunuwan
- Rust 的简单介绍- Steve Donovan
- Rust 引领潮流- Jonathan Creekmore
- ⭐ Rust 编程示例- Guillaume Gomez 和 Antoni Boucher
- Rust 入门——从新手到专业人士——Carlo Milanesi
- Rust 并发实践- Brian Troutwine
- Rust 函数式编程实践- Andrew Johnson
- 通过 2D 游戏开发和游戏实践有效地学习 Rust - Herbert Wolverson
- 实践 Rust 微服务- Denis Kolodin
- Rust 数据结构与算法实践- Claus Matzinger
- Rust 标准库食谱- Daniel Durante、Jan Nils Ferner
- Rust 快速入门指南- Daniel Arbuckle
- Rust 高性能- Iban Eguia Moraza
- 使用 Rust 对 WebAssembly 进行编程- Kevin Hoffman
- Rust 2018 微服务实践:如何构建可扩展且可靠的 RESTful 微服务- Denis Kolodin
- Rust 数据结构与算法实践- Claus Matzinger
- 完整的 Rust 编程参考指南:使用 Rust 的高级结构设计、开发和部署有效的软件系统- - Vesa Kaihlavirta、Rahul Sharma、Claus Matzinger
- 易锈蚀- 大卫·麦克劳德
- 🔜 Rust Web 开发- repo - Bastian Gruber
- Rust 小书- repo
- Rust 服务器、服务和应用程序- Prabhu Eshwarla
- 像专业人士一样使用 Rust 编写代码- Brenden Matthews
- Rustaceans 的 Rust - Jon Gjengset
- Rust 从头开始 - Matthew Provost
视频
播放列表
- ⭐ Rust 和系统编程的未来- Mozilla
- 2017年苏黎世RustFest
- ABitWiseGuy 教程- ABitWiseGuy
- dcode 教程- dcode
- maxday_coding - ASMR 实时编码
- 张量编程教程- 张量编程
- 你好,Rust! —— Matthias Endler
- YouCodeThings - Andrew Jakubowicz
- ⭐🔜 Rust in Motion - Carol Nichols和 Jake Goulding的视频课程
- 7 天学会 Rust - Matthew Stoodley
- Rust 教程- Doug Milford
- Rust - Crazcalm 的技术栈
- Rust Advent of Code 2019 - Brian Myers
- Rust 编程语言 | 教程- danlogs
- Ryan Levick 的 Rust Stream - Ryan Levick
- 锈蚀外壳——Jon Gjengset
- Rust Lang 终极教程! - 让我们一起 Rusty
- Rust 编程语言概述- Jonathan Turner
- Manning 出版物 Rust 频道- Manning 出版物
- Rust 编程简介- Rhymu 的视频
演示文稿
- 2021-06-25 -如何学习 Rust - Tim McNamara
- 2021-06-01 - Rust 的 Firehose,适合懂一些 C++ 的忙碌人士- Jack O'Connor
- 2020 年 9 月 21 日 - live@Manning Rust 会议- Carol Nichols、Tim McNamara、Maciej Hirsz、Olivia Ifrim、Nell Shamrell-Harrington、Pierre Krieger、Richard Walters、Chris Griffing、Lachezar Lechev、Michael Hausenblas
- 2017-06-20 - ⭐ Rust:运用所有权- Niko Matsakis
- 2017-01-20 - Rust 101 - E. Dunham
- 2016-09-28 - Mozilla 的 Rust 以及我们为什么喜欢它- Cambridge Consultants
- 2016-09-25 - ⭐ into_rust() - 学习 Rust 的截屏视频! - Niko Matsakis
- 2016-08-28 - ⭐ Rust:安全且可扩展的系统编程- Alex Crichton
- 2016-06-21 - ⭐ Rust 的历史- Steve Klabnik
- 2015-08-01 - ⭐ RustCamp 2015
- 2015-06-22 - LambdaConf 2015 - 我们信任 Rust - Alex Burkhart
- 2015-06-13 - ⭐什么是 Rust? - Yehuda Katz
- 2015-04-11 -我的 Python 有点生锈- Dan Callahan
- 2015-03-12 - ⭐斯坦福研讨会- Aaron Turon
播客
- 与 Jim Blandy 一起在 Rust 中移动和借用- Adam Bell
- 新 Rustacean - Chris Krycho
- 请求解释播客:Rust RFC 的每周讨论- Manish Goregaokar
- Rust 和 Bitter C++ 开发人员与 Jim Blandy - Adam Bell
- AreWePodcastYet
- Rustacean站
Rust 实践
- ⭐ Rust 示例- Jorge Aparicio和Steve Klabnik -仓库
- rosettacode -安德鲁·霍布登
- 为什么你的第一个 FizzBuzz 实现可能无法工作- Chris Morgan
- ⭐ Rust 标准库的注释- Brian Anderson
- ProjectEulerRust - gifnksm
- 代码的出现- Denys Levchenko
- Rust 详解:从头开始编写可扩展聊天服务- Nikita Baksalyar
- ⭐ rustlings:小型 rust 练习- Carol Nichols
- 通过过多的链表学习 Rust - Alexis Beingessner
- ⭐让我们构建一个浏览器引擎! - Matt Brubeck
- 理解胜过猜测- Andrew Hobden
- 用 Rust 编写操作系统 第一版 第二版- Philipp Oppermann
- 使用 Rust 从头创建 Nintendo 64 模拟器! - Jake Taylor
- Rust 中的多种代码重用- Alexis Beingessner
- 制作 Lisp - Joel Martin
- ⭐使用向量索引在 Rust 中建模图形- Niko Matsakis
- Rust 系列 24 天- Zbigniew Siciarz
- ⭐ Rust 食谱
- ⭐ Rust 和 CSV 解析- Andrew Gallant
- Rust 算法手册- Aram Ebtekar
- ⭐ stdx - Rust 缺失的电池- Brian Anderson
- Rust - exercism.org
- 使用 Rust 构建 DNS 服务器- Emil Hernvall
- Rust 速成课程- Michael Snoyman
- 使用 Rust 从头开始编写的 Web 浏览器- Josh Marinacci
- Rust之旅——理查德·安纳亚
- PNGme:一个中级 Rust 项目- picklenerd
- 使用 Rust 创建你自己的编程语言- Ehsan M. Kermani
- ⭐ Rust 中的命令行应用程序- Rust CLI 正在运行
- 使用 Rust 从头编写文件系统- Carlos Galdino
- Hecto:用 Rust 构建你自己的文本编辑器- Philipp Flenker
- Rust 推箱子- Olivia Ifrim
- Rust 健身房- 夏银初
- ⭐ Rust 测验- David Tolnay
- Blessed - Rust 生态系统的非官方指南- Nico Burns
最佳实践/风格指南
- ⭐ Rust 设计模式- Nick Cameron
- ⭐ Rust 中的错误处理- Andrew Gallant
- ⭐ Rust API 指南- Brian Anderson
- Rust 中的设计模式- Alexander Fadeev
- 解读 Rust 函数签名- Andrew Hobden
- 编写 Rust 库的良好实践- Pascal Hertleif
- 乡村小物件- Llogiq
- Rust 中的漂亮状态机模式- Andrew Hobden
- Rust 中的优雅库 API - Pascal Hertleif
- Rust 性能陷阱- Llogiq
- 如何编写 CRaP Rust 代码- Llogiq
- Rust 性能手册- Nicholas Nethercote
备忘单
- ⭐语法索引
- 铁锈类型周期表- Kang Seonghoon
- Rust 迭代器速查表- Daniel Keep
- Rust 字符串转换速查表- GavinB
- 乡村对称- kmc
- Rust 容器备忘单- Raph Levien
- Rust 中所有权和借用关系的图形描述- Phil Ruffwind
- 终身参考- 查尔斯
- Phaiax 的 Rust 备忘单- Phaiax
- Rust 语言速查表- Ralf Biedert
- Rust 速查表(面向初学者)
- 基于类型的 Rust 备忘单- Xidorn Quan
Rust 内部
汇编
- rust-cross,关于交叉编译 Rust 程序你需要知道的一切! - Jorge Aparicio
- 如何将 Rust 从 OS X 交叉编译到 FreeBSD - yohanesu75
- Raspberry Pi 交叉编译- Ogeon
- ⭐使用 rustup 将 Rust 带到任何地方- Brian Anderson
- 为什么 Rust 可执行文件很大? - Kang Seonghoon
- 让你的 ARM 微控制器生锈! —— Jorge Aparicio
- 在 macOS 上为 Raspberry Pi 交叉编译 Rust - Adrian Kappel
- rust-on-mobile - mtak-
- Rust 中的编译时功能标志- Justin Worthe
- iOS 上的 Rust - Emil Sjölander
外国金融机构
- 2017-11-22 -使用 Rust 编写快速安全的原生 Node.js 模块- Peter Czibik
- 2017-09-21 -在 Android 上构建和部署 Rust 库- Emily Toop
- 2017-09-06 -在 iOS 上构建和部署 Rust 库- Emily Toop
- 2020-09-08 - IC 和 Rust 也是如此- prateeknischal
- Rust FFI 综合版- Jake Goulding
- Rust FFI 指南 - 使用 unsafe 来获取乐趣和利润- Michael-F-Brya
CI / 测试
- 帮助 Travis 赶上 Rustc 列车(第 1 部分) |第 2 部分- Huon Wilson
- Rust、Travis 和 Github Pages - Andrew Hobden
- 节省 Travis 构建时间- Llogiq
- 如何收集 Rust 项目的测试覆盖率- Lifthrasiir
- Rust 代码覆盖指南:kcov + Travis CI + Codecov / Coveralls - Sunjay Varma
- Travis CI 上的 Rust 性能测试- Lloyd
- 使用 rustfmt 和 Travis-CI 确保提交完美- Kyle Kneitinger
- Great Rust CI - 克里斯托弗·达勒姆
- Rust Fuzz 书
调试/分析
我们...已经嗎?
与其他语言的比较
- Rust::from(lang) - Michael Gattozzi
- 其他的:
语言 | 链接 |
---|---|
C# |
|
C/C++ |
|
Clojure |
|
去 | |
Java/Scala |
|
JavaScript |
|
尼姆 |
|
Node.js |
|
OCaml/Haskell | |
Python |
|
红宝石 | |
迅速 |
|
Erlang |
|
应用程序/库/工具
查看 repos kud1ing/awesome-rust和awesomo
/rust
语言方面
我可以使用功能 X 吗?caniuse.rs - Rust 功能搜索
异步
- 200 行 Rust 代码解释 Futures - Carl Fredrik Samson
闭包
- 在 Rust 中寻找终结- Huon Wilson
- 默认线程安全:闭包和并发- Huon Wilson
- 如何将闭包传递到特征对象- Cam Jackson
- Rust 闭包和函数之间的实际区别- Ricardo Martins
- ⭐ Rust 如何实现线程安全- Manish Goregaokar
- 理解 Rust 中的闭包- Steve Donovan
- 为什么 Rust 闭包(有点)难- Andrew Pritchard
文档
- ⭐使用 Rust 编写文档- Jeremiah Peschka
- 保持 Rust 项目的 README.md 代码示例保持最新- Guillaume Gomez
- 如何为 Rust 板条箱编写文档的指南- Guillaume Gomez
枚举
错误
- ⭐ Rust 中的错误处理- Nick Cameron
- ⭐ Rust 中的错误处理- Andrew Gallant
- Rust 错误处理初学者指南- Sheshbabu Chinnakonda
- Rust 错误处理- sp1ff
- Rust:2020 年的构建和处理错误- Nick Groenen
- 在 Rust 中包装错误- Edgar Luque
- 在 Rust 中设计错误类型- Roman Kashitsyn
迭代器
- 迭代器之旅- Andrew Hobden
- 在 Rust 中有效使用迭代器- Herman J. Radtke III
- Rust 中的 for 循环- Karol Kuczmarski
- 结果和选项的迭代模式- Karol Kuczmarski
- Rust 中多个迭代器实现的小小探索- Guillaume Gomez
- rust-iterators - Max Skybin
寿命
- ⭐ Rust 真正闪耀的地方- Manish Goregaokar
- 理解 Rust 的生命周期 第一部分|第二部分- Bibhas Bhattacharya
- Rust 生命周期- Charles
- 生命的力量——乔纳森·古德温
- 理解 Rust 生命周期- Maksym Zavershynskyi
- Rust 生命周期常见误解- kirill
宏
- Rust 1.0 宏实用介绍- Daniel Keep
- Rust 宏小书- Lukas Wirth
- ⭐ Rust 中的宏第 1 部分|第 2 部分|第 3 部分|第 4 部分- Nick Cameron
- 用 Rust 编写复杂的宏:逆波兰表示法- Ingvar Stepanyan
- ⭐ Rust 2018 中的程序宏- Alex Crichton
- 在 Rust 中创建宏- Aaron Lazar
- Rust Latam:程序宏研讨会- David Tolnay
和平号空间站
模块
- Rust 模块要点- Sam Pagenkopf
- 我如何组织大型 Rust 程序- Casey Rodarmor
- Rust 模块系统的清晰解释- Sheshbabu Chinnakonda
选项与结果
- 选项类型 第 1 部分|第 2 部分- 8thlight
- Rust 中的 Option Monads - Andrew Hobden
所有权/并发
- ⭐使用 Rust 实现无畏并发- Aaron Turon
- Rust 所有权的艰难之路- Chris Morgan
- ⭐ Rust 的另一种介绍- Steve Klabnik
- ⭐单线程共享可变性的问题- Manish Goregaokar
- ⭐ Rust 中的包装器类型:选择你的保证- Manish Goregaokar
- 解决 Rust 中“无法移出”借用错误的策略- Herman J. Radtke III
- 为什么 Rust 的所有权/借用如此困难- Ivan Sagalaev
- Rust 模式中的 & 与 ref - Karol Kuczmarski
- Rust 内部可变性:是什么?为什么?如何实现? |第 2 部分|第 3 部分- Ricardo Martins
- ⭐ Rust 意味着永远不必关闭套接字- Yehuda Katz
- 理解 Rust 的生命周期,第 1 部分|第 2 部分- Bibhas Bhattacharya
Send
关于和的一些注释Sync
- Huon Wilson- 与 Rust 中的朋友分享涂色书- Jeena Lee
- 使用 Rust 移动、克隆和复制彩色书籍- Jeena Lee
- Ref 模式、解构和隐形借用- Robert Grosse
- Rust:独特的视角——Matt Brubeck
- Node 实验 - 使用 Rust 探索异步基础知识- Carl Fredrik Samson
- 深入研究 Rust 中的所有权- Pascal Precht
- 了解 Rust 中的所有权- Ukpai Ugochi
隐私
字符串
- Rust 函数中的 String 与 &str 第一部分|第二部分|第三部分- Herman J. Radtke III
- 从 &str 到 Cow - Joe Wilm
- Rust:str 与 String - Ameya Lokare
- 关于公共接口中的拥有和借用处理- Dimitri Sabadie
- 为什么 Rust 字符串看起来很难- Brandon Smith
语法扩展
特质
- ⭐无开销的抽象:Rust 中的特征- Aaron Turon
- 特征对象系列第 1 部分|第 2 部分|第 3 部分|第 4 部分- Huon Wilson
- Rust 特性,适用于开发人员友好的库- Ben Ashford
- 特征和特征对象- Matt Godbolt
- Rust 的内置特性,何时、如何以及为什么- Llogiq
- 你来自哪里::来自- Llogiq
- Rust 中类型级递归的简单介绍- Lloyd Chan
- Rust 中的 Traits 和 Trait 对象- Josh Leeb-du Toit
- 快速了解 Rust 中的 Trait 对象- Laurence Tratt
不安全
- 不安全的 Rust:简介和未解决的问题- Alexis Beingessner
- 内存泄漏是内存安全的- Huon Wilson
- ⭐关于引用计数和泄漏- Niko Matsakis
- ⭐关于引用计数和泄漏的更多评论- Niko Matsakis
- 让铁锈预先沾满你的裤子- Alexis Beingessner
- ⭐不安全的抽象- Niko Matsakis
- ⭐不安全代码的“Tootsie Pop”模型- Niko Matsakis
操场
区域设置链接
人们
您在寻找 rustacean 吗?http://www.rustaceans.org/
你想提问吗?用户论坛,Stack Overflow
你想在现实生活中见到他们吗?聚会小组、社区日历、社区讨论列表、RustBridge、Time to Rust
参加 Rusty 活动?2018 年 Rust 活动阵容,2019 年 Rust 活动阵容
你在找工作吗?RustJobs.rs
你速度快、友善又无所畏惧吗?快来找个 Rusty 的伙伴一起学习吧!
想了解最新动态吗?官方博客、本周 Rust 资讯、本周 Rust 文档、官方 Reddit
你想了解某些历史性决定背后的原因吗?Chronicle.rs
无畏的 Rust 博主
完整列表可在此处找到
- Aaron Turon -博客
- Andrew Gallant -博客
- Andrew Hobden -博客
- Brian Anderson -博客
- Christoph Burgdorf -博客
- 克里斯·摩根-博客
- Felix S Klock II -博客
- Huon Wilson -博客
- 乔纳森·特纳-博客
- Llogiq -博客
- Manish Goregaokar -博客
- 尼克·卡梅伦-博客
- Niko Matsakis -博客
- 帕特里克·沃尔顿-博客
- Yehuda Katz -博客
- Steve Klabnik -博客
不要忘记非官方吉祥物费里斯。
教程和研讨会材料
这些是来自 Rust 实体研讨会的幻灯片和资料。
虽然它们不太可能帮助学生独立学习,但
如果您正在举办 Rust 研讨会,它们可能会对您有所帮助。
- RustConf 2017 的研讨会幻灯片和练习。
- Niko Matsakis 的Rust 教程框架
- Niko Matsakis 的所有权、借用、特征、结构和线程教程、主题文件
- Niko Matsakis 2015 年 12 月的并发教程
- Niko Matsakis 的Mozlando 教程包括幻灯片和 play.rust-lang.org 演示
- Jim Blandy 的练习
- Dan Callahan 的Python Rust FFI示例
- Nick Cameron 的oopsla 幻灯片和练习
- Florian Gilcher 的邮箱教程将 Hello World 提升到一个全新的并发和网络水平
- Carol Nichols 的《Rust 简介》以与本书类似的方式介绍了猜谜游戏和所有权
- Jonathan Pallant 的Raspberry Pi 上的 Rust 教程(使用 Sense HAT)
关注我:
https://twitter.com/scott_beeker
https://github.com/dangolbeeker