Полные бесплатные ресурсы для начинающих Rust
Table of Contents Introduction 🦀 Rust Toolchains 🦀 Rust Free Online Books and Resources 🦀 Rust Official Links 🦀 Video Tutorials 🦀 Podcast 🦀 Interactive Learning 🦀 Online Books & Tutorials 🦀 Cheat Sheets 🦀 Rust Community 🦀 Coding Challenge 🦀 Rust IDE Extensions 🦀 Rust Ecosystem 🦀 Resource for Intermediate Users Conclusion
Вступление
[Последние обновления: 2020–09–02]
Rust - это современный язык системного программирования, ориентированный на безопасность, скорость и параллелизм.
Следующий график из The Benchmarks Game показывает, насколько быстро Rust сравнивает другие языки программирования. Вы можете найти сравнение с языком Go здесь.
В этой статье вы найдете основные инструменты Rust, новейшие документы, руководства, видео и онлайн-ресурсы.
Прочитав это, вы сможете ориентироваться и начать эффективно изучать язык программирования Rust в соответствии с вашим стилем обучения.
При установке Rust вы устанавливаете rustc
, cargo
, rustup
и другие стандартные инструменты. Итак, давайте сначала выясним, что делают инструментальные цепочки Rust, прежде чем искать все ресурсы.
Цепочки инструментов Rust
Цепочки инструментов - это набор инструментов, которые помогают языку создавать функциональный код. Они могут предоставлять расширенные функциональные возможности либо из простого компилятора и программы компоновщика, либо из дополнительных библиотек, IDE или отладчика.
ржавчина
rustup
устанавливает язык программирования Rust, позволяющий легко переключаться между стабильным, бета-компилятором и ночным компилятором и поддерживать их в обновленном состоянии.
Вы можете обновить Rust:
$ rustup update
ржавчина
rustc
- компилятор для языка программирования Rust. Компиляторы берут ваш исходный код и создают двоичный код в виде библиотеки или исполняемого файла. Вы будете использовать Cargo
для запуска программы на Rust вместо rustc
.
Подробнее читайте в справке aboutrustc
.
Груз
Cargo - пакетный менеджер Rust. Cargo загружает зависимости вашего пакета Rust, компилирует ваши пакеты, создает распространяемые пакеты и загружает их в crates.io, реестр пакетов сообщества Rust.
Другие официальные инструменты
Вы можете найти официальные состояния инструмента по этой ссылке.
Бесплатные онлайн-книги и ресурсы по Rust
Вы не можете избежать Язык программирования Rust, пока не попробуете другие ресурсы. Это первая и полная книга о Rust, которую вам нужно прочитать. Эта книга охватывает темы для начинающих и продвинутых пользователей. Он объясняет все детали с множеством примеров и диаграмм.
Если вы узнаете больше из примеров, Rust by Example для вас. Это набор исполняемых примеров, иллюстрирующих различные концепции и стандартные библиотеки Rust. Вы можете найти более 20 примеров.
Вы можете редактировать и запускать коды Rust из вашего браузера.
В конце вы найдете онлайн-ресурсы среднего и продвинутого уровней.
Поваренная книга Rust - это набор простых примеров, демонстрирующих передовые методы выполнения общих задач программирования с использованием ящиков экосистемы Rust.
Официальные ссылки Rust
Вы можете найти много информации на официальном сайте Rust.
crate - это двоичный файл или библиотека Rust, и вы можете найти реестр ящиков сообщества Rust по адресу https://crates.io/.
Пакет - это один или несколько ящиков, которые предоставляют набор функций. Пакет содержит файл Cargo.toml, описывающий, как собирать эти ящики.
Стандартная библиотека Rust предоставляет документацию по стандартной библиотеке Rust.
The Rust Playground предоставляет 100 самых загружаемых ящиков с craits.io и ящики из Поваренной книги Rust.
Другие источники
Learn Rust предоставляет вам необходимые руководства и документацию.
Вы можете найти библиотеки инструментов проекта по категориям в Awesome Rust.
Учебный материал по железу охватывает темы от основ до продвинутых в виде слайд-шоу. Он содержит примеры кодов и краткие пояснения.
Ошибки Rust
Если вы хотите узнать подробности об ошибках Rust, Индекс ошибок компилятора Rust перечислит все ошибки Rust с примерами.
Ошибка в вашем терминале:
Подробности об ошибках в Индексе ошибок компилятора Rust:
Видео-уроки
Если вам нравится учиться по видео, следующие видео вам помогут.
- Rust: что такое владение и заимствование? пользователя Gary Explains.
- Райан Левик создал серию руководств по Rust.
- Genus-v Programming содержит видеоуроки, связанные с Actix, включая службу аутентификации, веб-разработку и GraphQL с Actix.
- Веб-разработка на Rust | Boilerplate Free с Rocket , июнь 2020, 22 мин.
- Программирование на Rust: вычисления в браузере с помощью WebAssembly, июнь 2020 г., 1 час 55 мин.
- Видеоматериал подготовлен командой Rust.
- Введение в Rust | COM209 обучает основам Rust, а затем создает и запускает простое приложение. Видео снято в мае 2020 года.
- Дэвид Педерсен разместил свой код в прямом эфире на Youtube и Twich.tv. Они с июня 2020 года.
- В книге Джонатан учит Джейсона Раста! Джонатан пытается научить Джейсона Тернера основам Раста за пару часов. Это видео было снято в мае 2020 года, 3 часа 36 минут.
- В статье 12 вещей, которые помогут вам изучить Rust Гэри объясняет циклы, переменные, функции, кортежи, строки и многое другое. Видео снято в апреле 2020 года.
- Изучение Rust: Rustlings показывает парное программирование на некоторых упражнениях Rustlings. Видео снято в августе 2019 года.
- Стриминг Rust с Райаном Левиком
- Crust of Rust: Итераторы с мая 2020 года.
- Создайте биткойн-подобный блокчейн на ржавчине и субстрате с мая 2020 года.
- Into_rust () относится к 2016 году, но он объясняет основные концепции, такие как владение, общие заимствования и изменяемые заимствования.
- Baseline.Rust от zaitt.works.
- Привет, Ржавчина!
- Выбор Rust - Клинт Фредериксон Клинт делится с Iron своим опытом выбора Rust и почему он может быть правильным выбором для вашего следующего проекта.
Подкаст
Подкаст Rustacean Station - проект сообщества по созданию контента подкастов для языка программирования Rust.
Интерактивное обучение
Если вам нравится учиться на практике, то это для вас.
Тур по Rust - это пошаговое руководство по функциям языка программирования Rust. Он охватывает основы, базовый поток управления, базовые типы структур данных и универсальные типы.
В разделе rustlings есть небольшие упражнения, которые помогут вам привыкнуть к чтению и написанию кода на Rust. Вы можете использовать это вместе с Языком программирования Rust.
Вы можете приступить к упражнениям:
rultlings watch
Когда вы сохраните файл, он автоматически проверит ответ и даст вам отзыв.
После того, как вы выполнили упражнение, вам нужно удалить строку:
// I AM NOT DONE
Когда вы сохраните файл, он перейдет к следующему упражнению.
rustlings
содержит полезные подсказки со ссылкой на документ.
Exercism - это 100% бесплатная практика и наставничество. Его исходный код полностью открыт и основан на вкладе тысяч добровольцев.
Он подскажет, как установить его на свой компьютер. Вы можете изучить не только Rust, но и еще 50 языков программирования.
Выполнив задание по кодированию на своем компьютере, вы загружаете свое решение и просматриваете его с наставником.
Электронные книги и руководства
- Нельсон Эльхаге создает Ultimate Tic Tac Toe с помощью Rust.
- Четкое объяснение модульной системы Rust Шешбабу Чиннаконда
- DEV опубликовал более 70 статей по теме Rust в июне 2020 года.
- Если вы разработчик JavaScript, у Шеш есть для вас сообщения. например Rust для разработчиков JavaScript - Функции и поток управления.
- Нежное введение в Rust от Стива Дж. Донована
- Создайте умный инструмент закладок с помощью Rust and Rocket, Джо Превайт
- Чрезвычайно простой учебник по Rust Rocket Framework
- Изучение Rust
- О библиотеках / ящиках Rust вы можете узнать в 24daysofrust.
- API учебника по Rust + Actix + CosmosDB (MongoDB)
- Чрезвычайно простой учебник по Rust Rocket Framework
- Создайте умный инструмент закладок с помощью Rust and Rocket
- Rust Sokoban - это расширенное руководство по созданию копии Sokoban в Rust. Он использует существующий движок 2D-игры, готовые ассеты, и в конце концов у него будет полностью рабочая игра. Вы можете найти примеры того, как его использовать.
- Изучите Rust с слишком большим количеством связанных списков. Онлайн-книга учит базовому и продвинутому программированию на Rust с помощью 6 связанных списков.
- Полчаса на изучение Rust объясняет ключевые слова и символы Rust.
Шпаргалки
- Периодическая таблица типов Rust: в этой таблице типы Rust упорядочены в ортогональную табличную форму, что упрощает их понимание и рассуждение.
- Преобразование строк в Rust
- Шпаргалка по Rust Iterator
- Чит-лист контейнера ржавчины
Сообщество Rust
Блог и информационный бюллетень
- Страница сообщества Rust.
- Я очень рекомендую На этой неделе в Rust. Он еженедельно предоставляет самую свежую информацию о Rust.
- Блог Rust - главный блог Rust. Основная команда использует этот блог, чтобы сообщать о крупных событиях в мире Rust.
- Блог Inside Rust предназначен для тех, кто хочет следить за развитием Rust.
- Страница Брайана Статьи в блогах Rust организована по категориям и содержит множество статей в блогах.
- Если вы программист на C, то книга Клиффа Л. Биффла Learn Rust the Dangerous Way для вас.
- Llogiq о вещах
- Нико Мацакис
Где я могу получить помощь?
Rust Discord имеет много активных участников и один из разделов предназначен для начинающих.
Форум пользователей Rust предназначен для помощи, обсуждения и объявлений, связанных с языком программирования Rust.
Stackoverflow содержит более 16 000 вопросов. Шепмастер, который является соучредителем первой в мире консалтинговой компании Rust, ответил на многие вопросы Rust.
Язык программирования Rust на Reddit насчитывает 105 тысяч участников.
Люди, на которых можно подписаться в Твиттере
· #Rustlang, #learnrust и #learningrust
· Rust Language
· Стив Клабник
· Эйдан Хобсон Сэйерс
· Эшли Уильямс
· Кэрол Николс
· Нико Мацакис
· Ник Кэмерон
· Пьетро Альбини
· Лин Кларк
· Флориан Гилчер
· Кайл Дж. Стрэнд
· На этой неделе в Rust
· Джонатан Тернер
Встреча по Rust
Есть много групп Rust Meetup, которые проводят онлайн-встречи. Вы также можете найти встречи в Календаре сообщества Rust.
Coding Challenge
- LeetCode имеет множество проблем, которые вы можете решить в Интернете с помощью Rust.
- exercism.io содержит 92 упражнения на треке Rust.
- Сфера онлайн-судьи имеет множество проблем, с которыми вы можете столкнуться.
- Вы принимаете участие в написании кода для игр, в которые играете прямо онлайн на CodinGame. Вы можете написать свой код на Rust.
Расширения Rust IDE
Вы можете найти интеграцию с Rust для вашего редактора здесь. Если вы являетесь пользователем VS Code, вы можете установить расширение rls-vscode.
Rust Language Server, RLS предоставляет сервер, который работает в фоновом режиме, предоставляя IDE, редакторам и другим инструментам информацию о программах на Rust. Он поддерживает автозавершение кода, переходы к определению, форматирование кода и многое другое.
Команда компилятора Rust Lang создала рабочую группу rls-2.0. Цель состоит в том, чтобы улучшить опыт пользователей RLS.
Вы можете найти их реализацию в анализаторе ржавчины, а анализатор ржавчины поддерживает различные IDE.
Вы можете узнать, насколько ваш редактор поддерживает Rust, на странице We (I) DE?
Экосистема ржавчины
Вы можете найти множество библиотек на crates.io. Вот некоторые из категорий, которые могут вас заинтересовать.
Веб-фреймворк
Actix - самый быстрый фреймворк согласно Web Framework Benchmarks. Существует десять активных веб-фреймворков Rust. Actix, Rocket, Gotham, Seed и т. д. Более подробную информацию можно найти в разделе Сравнение веб-фреймворков.
Веб-разработка
Самый быстрый шаблонизатор на Rust, sailfish. Он заявляет, что в 200 раз быстрее руля.
WebAssembly (последние обновления: 29 июня 2020 г.)
Если вас интересует WebAssembly, то следующие ссылки вам помогут.
- Официальная страница Rust на WebAssembly
- Рабочая группа WASM и книга группы Rust and WebAssembl.
- Rust и WebAssembly с нуля: привет, мир со строками
- Начало работы с WebAssembly и Rust
- WebAssembly с Rust и React (с использованием приложения create-react-app)
- Использование Rust и WebAssembly для обработки пикселей из видеопотока
- Понимание текстового формата WebAssembly
- Компиляция из Rust в WebAssembly
- Вывод WebAssembly за пределы сети с помощью WASI от Лин Кларк объясняет, как работает WASI, и исследует, как различные варианты использования могут извлечь из этого пользу.
- Yew - это фреймворк на Rust / Wasm для создания клиентских веб-приложений.
- Rust + WebAssembly - EdgeXR @ Netlight от Александра Хайнца
Сети
- Официальная страница Rust в Сети.
Встроенные устройства
- Официальная страница Rust в разделе Встроенные устройства.
- Встроенная книга ржавчины.
Настольная разработка
Привязки Rust для библиотеки графического интерфейса пользователя FLTK, fltk-rs. Видеоурок находится здесь.
Наука о данных
- У Data Science at Home есть серия подкастов на тему Rust и машинное обучение.
- Amadeus обеспечивает гармоничный распределенный анализ данных в Rust.
- ndarray эквивалентен numpy в Python.
Разработка игр (последние обновления, 13 июля 2020 г.)
- Перенос Godot Games на Rust (Часть 1)
- Рабочая группа по разработке игр на Rust выпускает ежемесячные информационные бюллетени.
- ggez - это легкая игровая среда для создания 2D-игр с минимальным трением. Он нацелен на реализацию API на основе (русифицированной версии) игрового фреймворка LÖVE. Он содержит переносимый 2D-рисунок, звук, загрузку ресурсов и обработку событий.
- Спецификации - это система сущностей-компонентов (ESC), написанная на Rust. Это самая популярная библиотека ESC.
- годо-ржавчина - это привязка Rust к игровому движку Godot.
- Великолепные игры Годо в Rust.
- Legion ECS с Годо и Ржавчиной.
Терминал (последние обновления, 13 июля 2020 г.)
- Официальная страница Rust в разделе Приложения командной строки.
- Rustbox - это библиотека, предоставляющая API, который позволяет программисту писать текстовые пользовательские интерфейсы.
- Tui-rs - это библиотека Rust для создания многофункциональных пользовательских интерфейсов терминала и информационных панелей.
- Termion - это чистая библиотека Rust без привязки для низкоуровневой обработки, манипулирования и чтения информации о терминалах.
- Crossterm - это чистая библиотека для работы с терминалами, которая позволяет писать кроссплатформенные текстовые интерфейсы.
- Pancurses - это библиотека curses для Rust, которая обеспечивает более рустикальный интерфейс по сравнению с обычными функциями curses для простоты использования, оставаясь достаточно близкой к curses, чтобы упростить перенос.
- StructOpt анализирует аргументы командной строки, определяя структуру. Он сочетает в себе
clap
с пользовательским выводом. clap
или анализатор аргументов командной строки - это простая в использовании, эффективная и полностью настраиваемая библиотека для анализа аргументов командной строки.- Gtk-rs - это привязки Rust для GTK + 3, Cairo, GtkSourceView и других GLib -совместимых библиотек. Он предоставляет множество готовых виджетов пользовательского интерфейса.
Разработка ОС
OSDev, Сообщения о разработке операционной системы в Rust регулярно содержат обзор наиболее важных изменений в инструментах и библиотеках RustOSDev.
Привязки Rust для других языков
bindgen
автоматически генерирует привязки Rust FFI к библиотекам C (и некоторым C ++).
PyO3 включает запуск и взаимодействие с кодом Python из двоичного файла Rust.
Блог Мары описывает процесс создания inline-python.
Вы можете найти больше привязок на carates.io.
Сериализация и десериализация
Serde - это фреймворк для сериализации и десериализации структур данных Rust.
Сериализация берет структуру данных в памяти и преобразует ее в серию байтов, которые могут быть сохранены и переданы. Десериализация берет серию байтов и преобразует ее в структуру данных в памяти, которую можно использовать программно.
ORM
Diesel - безопасный, расширяемый ORM и конструктор запросов для Rust.
Ресурс для промежуточных пользователей
Если вы любите приключения, вы можете проверить одно из следующих.
- Приложения командной строки в Rust содержат отличные упражнения для новичков, которые плохо знакомы с языком и пишут программу с простым интерфейсом командной строки (CLI). Вы познакомитесь с некоторыми из основных концепций Rust, а также с основными аспектами приложений CLI.
- Рекомендации по API Rust - это набор рекомендаций по разработке и представлению API-интерфейсов для языка программирования Rust.
- Книга rustc
rustc
- компилятор для языка программирования Rust. Компиляторы берут ваш исходный код и создают двоичный код в виде библиотеки или исполняемого файла. - Книга Cargo расскажет вам все о Cargo.
- Вы можете прочитать о новых крупных изменениях в Rust в The Edition Guide.
- Шпаргалка по языку Rust предназначена для опытных программистов и пользователей Rust среднего уровня. Если вы предпочитаете контент на основе визуальных примеров, это для вас. Вы можете скачать PDF-файл из репозитория Github.
- Rust Forge служит хранилищем дополнительной документации, полезной для участников языка программирования Rust.
- Справочник по Rust - это основной справочник по языку программирования Rust. Он обеспечивает создание и использование языка, модель памяти, модель параллелизма, службы времени выполнения и многое другое.
- Филипп Опперманн написал Написание ОС на Rust.
- Майкл Ф. Брайан писал об ArrayVec в статье Реализация ArrayVec с использованием констант-дженериков.
- Погружение в Rust с помощью CLI показывает, как создать приложение CLI.
- dtolnay написал о Кейсах по макро-разработке Rust.
- Практическое руководство по асинхронности в Rust Карла Фредрика Самсона
- Руководство по защите от ржавчины - ANSSI (Национальное агентство кибербезопасности Франции)
- Привязки Rust OpenCV
- Встроенная разработка
- Паттерны дизайна Rust
- Советы по ускорению компиляции Rust
- Инструменты проверки ржавчины
Учебники для новичков
- Изучение Rust: давайте создадим синтаксический анализатор
- Маленькие струны в ржавчине
- Серво - это современный высокопроизводительный браузер, предназначенный как для приложений, так и для встроенных приложений.
- МАЙКЛ-Ф-БРАЙАН пишет статьи о ржавчине.
- Barely Functional пишет статьи о Rust .
- Нико Мацакис пишет свои идеи о Rust.
Учиться, делая
Встроенные системы
Заключение
Онлайн-ресурсов миллиард. Надеюсь, вы нашли наиболее подходящий учебный ресурс и начали изучать язык программирования Rust.
Пожалуйста, дайте мне знать, если я что-то пропустил.
Новостная рассылка
Получите полный доступ ко всем статьям на Medium, став участником.