为Rust初学者完全免费的资源
内容列表
介绍
- 🦀Rust的工具链
- 🦀Rust在线书籍和资源
- 🦀Rust官方链接
- 🦀视频教程
- 🦀播客
- 🦀交互式学习
- 🦀在线书籍和教程
- 🦀备忘单
- 🦀Rust社区
- 🦀编码的挑战
- 🦀Rust IDE扩展
- 🦀Rust的生态系统
- 🦀中级用户资源
结论
介绍
[最新更新:2020年9月12日]
Rust是一种注重安全性、速度和并发性的现代系统编程语言。
下面的图表来自评测游戏,显示了Rust与其他编程语言相比是多么的快。你可以在这里找到Go语言的对比。
在本文中,您将找到基本的Rust工具、最新的文档、教程、视频和在线资源。
阅读这篇文章后,你可以自己导航,并开始有效地学习Rust编程语言,以适合你的学习风格。
当你安装Rust时,你安装的是rustc, cargo, rustup和其他标准工具。所以,在找到所有资源之前,让我们先看看Rust工具链做什么。
Rust的工具链
工具链是帮助语言生成功能代码的一组工具。它们可以从简单的编译器和链接器程序,或附加库、IDE或调试器中提供扩展功能。
rustup
rustup安装Rust编程语言,使您能够轻松地在稳定编译器、测试版编译器和夜间编译器之间切换,并保持它们的更新。
你可以更新Rust:
$ rustup update
rustc
rustc是Rust编程语言的编译器。编译器接受您的源代码并生成二进制代码,可以作为库,也可以作为可执行文件。你将使用Cargo来运行Rust程序而不是rustc。
您可以在关于outrustc的参考资料中找到更多细节。
Cargo
Cargo是Rust包管理员。Cargo下载Rust包的依赖项,编译您的包,制作可分发的包,并将它们上传到crates.io, Rust社区的包注册表。
其他官方工具
您可以在此链接中找到官方工具状态。
Rust免费的在线书籍和资源
在尝试其他资源之前,您不能避免使用Rust编程语言。这是你需要阅读的关于Rust的第一本完整的书。这本书涵盖了初学者到高级用户的主题。它用大量的例子和图表解释了所有的细节。
如果你从例子中学到更多,Rust的例子是为你。它是一个可运行示例的集合,演示了各种Rust概念和标准库。你可以找到20多个例子。
您可以编辑和运行Rust代码从您的浏览器。
最后你会找到中级和高级的在线资源。
Rust Cookbook是一个简单示例的集合,它展示了使用Rust生态系统中的板条箱来完成常见编程任务的良好实践。
Rust的官方链接
你可以在Rust的Rust official website.上找到很多信息。
crate 是Rust二进制或库,你可以在https://crates.io/找到Rust社区的crate 注册表。
包是提供一组功能的一个或多个crate .包裹内装Cargo.toml文件,描述如何构建这些板条箱。
Rust标准库提供了The Rust Standard Library。
The Rust Playground provides the top 100 most downloaded crates from craits.io and the crates from the Rust Cookbook.
其他资源
Learn Rust 提供您需要的指南和文档。
你可以在 Awesome Rust通过类别找到项目工具库。
Ferrous Teaching Material 覆盖基础到高级主题幻灯片。它提供了示例代码和解释是简洁的。
Rust的错误
如果你想详细了解Rust错误,Rust编译器错误索引列举所有锈错误的例子。
终端错误:
Rust编译器错误索引的错误细节:
Rust视频教程
如果你喜欢从视频中学习,那么下面的视频将会帮助你。
- Rust: What is Ownership and Borrowing? by Gary Explains.
- Ryan Levick created a series of Rust tutorials.
- Genus-v Programming has Actix related video tutorials including authentication service, web development, and GraphQL with Actix.
- Rust Web development | Boilerplate free with Rocket, June 2020, 22 min.
- Rust Programming: Browser computation with WebAssembly, June 2020, 1 hr 55 min.
- Video material curated by the Rust team.
- Intro to Rust | COM209 teaches some of the basics of Rust, and then build and run a simple app. The video was taken in May 2020.
- David Pedersen posted his live coding on Youtube and Twich.tv. They are from June 2020.
- In Jonathan Teaches Jason Rust!, Jonathan attempts to teach Jason Turner Rust fundamentals in a couple of hours. This video was taken in May 2020, 3 hrs 36 min.
- In 12 Things to Help You Learn Rust Gary explains loops, variables, functions, tuples, strings, and more. The video was taken in April 2020.
- Learning Rust: Rustlings shows pair programming on some Rustlings exercises. The video was taken in August 2019.
- Streaming Rust with Ryan Levick
- Crust of Rust: Iterators from May 2020.
- Build a Bitcoin-like Blockchain in Rust and Substrate from May 2020.
- into_rust() is from 2016, but it explains the basic concepts such as ownership, shared borrows, and mutable borrows.
- Baseline.Rust by zaitt.works.
- Hello Rust!
- Choosing Rust — Clint Frederickson Clint shares Iron his experience with choosing Rust and why it might be the right choice for your next project.
Rust播客
The Rustacean Station Podcast 是一个为Rust编程语言创建播客内容的社区项目。
The unofficial mascot for Rust
Rust交互式学习
如果你喜欢边做边学,那么这些就适合你。
Tour of Rust 是一个循序渐进的指南,通过Rust编程语言的特点。它涵盖了基础、基本控制流、基本数据结构类型和泛型类型。
rustlings提供了一些小练习,让您习惯于阅读和编写Rust代码。您可以将它与Rust编程语言一起使用。
你可以开始练习:
rultlings watch
当你保存文件时,它会自动检查答案并给你反馈。
一旦你完成了一个练习,你需要删除这一行:
// I AM NOT DONE
保存文件后,它将转到下一个练习。
rustlings 为文档链接提供了有用的提示。
Exercism 是100%免费的代码实践和指导。它是完全开源的,依赖于成千上万志愿者的贡献。
它会指导你如何在你的电脑上安装它。你不仅可以学习Rust,还可以学习其他50种编程语言。
当你在电脑上完成一个编码挑战时,你上传你的解决方案,并与导师一起审查它。
Online Books & Tutorials
- Nelson Elhage is creating the Ultimate Tic Tac Toe with Rust.
- Clear explanation of Rust’s module system by Sheshbabu Chinnakonda
- DEV has more than 70 Rust related articles in June 2020.
- If you are a JavaScript developer, Shesh has posts for you. e.g. Rust for JavaScript Developers — Functions and Control Flow.
- A Gentle Introduction to Rust by Steve J Donovan
- Build a Smart Bookmarking Tool with Rust and Rocket by Joe Previte
- Extremely Simple Rust Rocket Framework Tutorial
- Learning Rust
- You can find about Rust libraries/crates in 24daysofrust.
- Rust + Actix + CosmosDB (MongoDB) tutorial api
- Extremely Simple Rust Rocket Framework Tutorial
- Build a Smart Bookmarking Tool with Rust and Rocket
- Rust Sokoban is an extended tutorial on making a Sokoban copy in Rust. It uses an existing 2D game engine, pre-made assets and by the end, it’ll have a fully working game. You can find examples of how to use it.
- Learn Rust With Entirely Too Many Linked Lists. The online book teaches basic and advanced Rust programming by implement 6 linked lists.
- A half-hour to learn Rust explains Rust keywords and symbols.
Cheat Sheets
- The Periodic Table of Rust Types: This table organizes Rust types into an orthogonal tabular form, making them easier to understand and reason.
- Rust String Conversions
- Rust Iterator Cheat Sheet
- Rust Container Cheet Sheet
Rust Community
Blog and newsletter
- Rust Community page.
- I highly recommend “This week in Rust”. It delivers weekly most up-to-date information about Rust.
- “Rust Blog” is the main Rust blog. The core team uses this blog to announce big developments in the world of Rust.
- “Inside Rust blog” is aimed a those who wish to follow along with Rust development.
- Brian’s “Rust blog articles” page is organized by categories and has many blog articles.
- If you are a C programmer, Cliff L. Biffle’s “Learn Rust the Dangerous Way” is for you.
- Llogiq on stuff
- Niko Matsakis
Where can I get help?
Rust Discord has many active members and one of the sections is for beginners.
Rust Users Forum 是关于Rust编程语言的帮助、讨论和公告。
Stackoverflow有超过16000个问题。 Shepmaster是世界上第一家Rust咨询公司的联合创始人,他回答了许多Rust 问题。
Reddit’s “The Rust Programming Language” 拥有10万5千名会员。
People to follow on Twitter
· #rustlang, #learnrust, and #learningrust
· Rust Language
· Steve Klabnik
· Aidan Hobson Sayers
· Ashley Williams
· Carol Nichols
· Niko Matsakis
· Nick Cameron
· Pietro Albini
· Lin Clark
· Florian Gilcher
· Kyle J Strand
· This Week in Rust
· Jonathan Turner
Rust Meetup
There are many Rust Meetup groups running online meetings. You can find meetings in Rust Community Calendar as well.
编码挑战
- LeetCode has many problems you can solve online with Rust.
- exercism.io has 92 exercises on the Rust track.
- Sphere online judge has many problems you can challenge.
- You take part in writing the code for games that you play directly online at CodinGame. You can write your code in Rust.
Rust的IDE扩展
你可以在这里here.为你的编辑器找到Rust集成。如果你是一个VS Code用户,你可以安装 rls-vscode扩展。
RLS提供了一个在后台运行的服务器,提供ide、编辑器和其他带有Rust程序信息的工具。它支持代码自动完成、跳转到定义、代码格式化等等many more.。
Rust Lang编译团队创建rls-2.0工作组 ( rls-2.0 working group.)。目标是让用户有更好的RLS体验。
您可以在rust-analyzer 中找到它们的实现,并且rust-analyzer支持不同的IDEs。
你可以在Are we (I)DE yet?找到你的编辑是如何支持Rust的?
Rust的生态系统
你可以在crats .io找到很多库。下面是一些你可能会感兴趣的类别。
Web框架
根据Web框架基准测试(Web Framework Benchmarks.),Actix是最快的框架。目前有10个活跃的Rust web框架。 Actix, Rocket, Gotham, Seed等。您可以从web框架比较(web framework comparison.)中找到更多的信息。
简单的火箭网络框架教程|发布请求
Web开发
最快的Rust模板引擎,旗鱼。它号称比车把快200倍。
WebAssembly(最新更新:2020年6月29日)
如果您对WebAssembly感兴趣,那么下面的链接将帮助您。
- Rust official page on WebAssembly
- WASM working group and Rust and WebAssembly book by the group.
- Rust and WebAssembly from Scratch: Hello World with Strings
- Getting started with WebAssembly and Rust
- WebAssembly with Rust and React (Using create-react-app)
- Using Rust and WebAssembly to Process Pixels from a Video Feed
- Understanding WebAssembly text format
- Compiling from Rust to WebAssembly
- Bringing WebAssembly outside the web with WASI by Lin Clark explains how WASI works and explore how different use cases can benefit from it.
- Yew is a Rust/Wasm framework for building client web apps.
- Rust + WebAssembly — EdgeXR @ Netlight by Aleksander Heintz
网络
Rust official page on Networking.
嵌入式设备
- Rust official page on Embedded devices.
- The Embedded Rust Book.
桌面开发
Rust绑定FLTK图形用户界面库 fltk-rs。视频教程在这里(here.)。
数据科学
- Data Science at Home has a series of podcasts on Rust and machine learning.
- Amadeus provides a harmonious distributed data analysis in Rust.
- ndarray is equivalent to Python’s numpy.
游戏开发(最新更新,2020年7月13日)
- Porting Godot Games To Rust (Part 1)
- Rust Game Development Working Group has monthly newsletters.
- The ggez is a lightweight game framework for making 2D games with minimum friction. It aims to implement an API based on (a Rustified version of) the LÖVE game framework. It contains portable 2D drawing, sound, resource loading, and event handling.
- Specs is an Entity-Component System(ESC) written in Rust. It is the most popular ESC library.
- godot-rust is Rust bindings to the Godot game engine.
- Gorgeous Godot games in Rust.
- Legion ECS with Godot and Rust.
终端(最新更新,2020年7月13日)
- Rust official page on Command-line apps.
- Rustbox is a library that provides API which allows the programmer to write text-based user interfaces.
- Tui-rs is a Rust library to build rich terminal user interfaces and dashboards.
- Termion is a pure Rust, bindless library for low-level handling, manipulating, and reading information about terminals.
- Crossterm is a pure-rust, terminal manipulation library that makes it possible to write cross-platform text-based interfaces.
- Pancurses is a curses library for Rust to provide a more Rustic interface over the usual curses functions for ease of use while remaining close enough to curses to make porting easy.
- StructOpt parses command line arguments by defining a struct. It combines
clap
with custom derive. clap
or Command Line Argument Parser is a simple-to-use, efficient, and fully-configurable library for parsing command line arguments.- Gtk-rs is Rust bindings for GTK+ 3, Cairo, GtkSourceView and other GLib-compatible libraries. It provides many UI widgets out-of-the-box.
操作系统开发
在Rust的帖子中,OSDev,操作系统开发给出了RustOSDev工具和库的最重要变化的常规概述。
Rust绑定为其他语言
bindgen
automatically generates Rust FFI bindings to C (and some C++) libraries.
PyO3 includes running and interacting with Python code from a Rust binary.
Mara’s Blog goes through the process of creating inline-python.
You can find more bindings at carates.io.
序列化和反序列化
Serde是一个序列化和反序列化Rust数据结构的框架。
序列化采用内存中的数据结构,并将其转换为一系列可以存储和传输的字节。反序列化接受一系列字节,并将其转换为可编程使用的内存数据结构。
ORM
Diesel是一个安全的、可扩展的针对Rust的ORM和查询生成器。
中级用户资源
如果你喜欢冒险,你可以看看下面的一条。
- Command Line Applications in Rust has great exercises for a beginner who is new to the language and writing a program with a simple command-line interface (CLI). You’ll be exposed to a few of the core concepts of Rust as well as the main aspects of CLI applications.
- Rust API Guidelines is a set of recommendations on how to design and present APIs for the Rust programming language.
- The rustc book
rustc
is the compiler for the Rust programming language. Compilers take your source code and produce binary code, either as a library or executable. - The Cargo book tells you all about Cargo.
- You can read about Rust’s new large changes in The Edition Guide.
- Rust Language Cheat Sheet is for experienced programmers and intermediate Rust users. If you prefer visual example-driven content, this is for you. You can download a PDF from it’s Github repo.
- Rust Forge serves as a repository of supplementary documentation useful for members of The Rust Programming Language.
- The Rust Reference is the primary reference for the Rust programming language. It provides language construct and use, the memory model, concurrency model, runtime services, and more.
- Philipp Oppermann wrote Writing an OS in Rust.
- Michael F Bryan wrote about ArrayVec in Implementing ArrayVec Using Const Generics.
- Diving into Rust with a CLI shows how to create a CLI application.
- dtolnay wrote about Rust macro development case studies.
- A practical guide to async in Rust by Carl Fredrik Samson
- Secure Rust Guidelines — ANSSI (National Cybersecurity Agency of France)
- Rust OpenCV bindings
- Embedded development
- Rust Design Patterns
- Tips for Faster Rust Compile Times
- Rust verification tools
Post-Beginners教程
- Learning Rust: Let’s Build a Parser
- Small strings in Rust
- Servo is a modern, high-performance browser engine designed for both application and embedded use.
- MICHAEL-F-BRYAN is writing Rust articles.
- Barely Functional is writing Rust articles.
- Niko Matsakis writes his ideas on Rust.
边做边学
嵌入式系统
结论
网上有成千上万的资源。希望你找到最适合的学习资源,开始学习Rust编程语言。
如果我漏掉了什么,请告诉我。
原文:https://towardsdatascience.com/you-want-to-learn-rust-but-you-dont-know-where-to-start-fc826402d5ba
本文:http://jiagoushi.pro/node/1398
讨论:请加入知识星球【全栈和低代码开发】或者小号【it_training】或者QQ群【11107767】
- 登录 发表评论
- 141 次浏览
最新内容
- 1 day 19 hours ago
- 1 day 19 hours ago
- 4 days 21 hours ago
- 5 days 10 hours ago
- 6 days 21 hours ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago