Полные бесплатные ресурсы для начинающих 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.

Другие официальные инструменты

  • Clippy - линтер на Rust.
  • Rustfmt форматирует код 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:

Видео-уроки

Если вам нравится учиться по видео, следующие видео вам помогут.

Подкаст

Подкаст Rustacean Station - проект сообщества по созданию контента подкастов для языка программирования Rust.

Интерактивное обучение

Если вам нравится учиться на практике, то это для вас.

Тур по Rust - это пошаговое руководство по функциям языка программирования Rust. Он охватывает основы, базовый поток управления, базовые типы структур данных и универсальные типы.

В разделе rustlings есть небольшие упражнения, которые помогут вам привыкнуть к чтению и написанию кода на Rust. Вы можете использовать это вместе с Языком программирования Rust.

Вы можете приступить к упражнениям:

rultlings watch

Когда вы сохраните файл, он автоматически проверит ответ и даст вам отзыв.

После того, как вы выполнили упражнение, вам нужно удалить строку:

// I AM NOT DONE

Когда вы сохраните файл, он перейдет к следующему упражнению.

rustlings содержит полезные подсказки со ссылкой на документ.

Exercism - это 100% бесплатная практика и наставничество. Его исходный код полностью открыт и основан на вкладе тысяч добровольцев.

Он подскажет, как установить его на свой компьютер. Вы можете изучить не только Rust, но и еще 50 языков программирования.

Выполнив задание по кодированию на своем компьютере, вы загружаете свое решение и просматриваете его с наставником.







Электронные книги и руководства

Шпаргалки

Сообщество Rust

Блог и информационный бюллетень

Где я могу получить помощь?

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 в Сети.

Встроенные устройства

Настольная разработка

Привязки Rust для библиотеки графического интерфейса пользователя FLTK, fltk-rs. Видеоурок находится здесь.

Наука о данных

  • У Data Science at Home есть серия подкастов на тему Rust и машинное обучение.
  • Amadeus обеспечивает гармоничный распределенный анализ данных в Rust.
  • ndarray эквивалентен numpy в Python.

Разработка игр (последние обновления, 13 июля 2020 г.)

Терминал (последние обновления, 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.

Пожалуйста, дайте мне знать, если я что-то пропустил.

Новостная рассылка

Получите полный доступ ко всем статьям на Medium, став участником.