Rust с открытым исходным кодом: 24 потрясающих фреймворка, проектов и библиотек

Перевод | Автор оригинала: Gints Dreimanis

У Rust очень живая и быстро развивающаяся экосистема с открытым исходным кодом, в которой множество участников работают над массой потрясающих проектов.

И если вы спрашиваете - что я могу построить в Rust? Ответ почти на все.

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

Для вашего удобства я разделил их на такие области, как веб-разработка, разработка игр, блокчейн и другие. Давайте копаться!

Фреймворки веб-разработки для Rust

Веб-разработка на Rust

Можете ли вы создать веб-приложение на Rust? Определенно!

Rust имеет несколько чрезвычайно быстрых веб-фреймворков - Rocket, Actix Web и Yew - и вы можете использовать ту, которая соответствует вашим потребностям и предпочтениям.

Rocket

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

В отличие от Actix Web, фреймворк работает на ночном Rust - «экспериментальной» версии языка.

Actix Web

Actix Web обычно считается более производительным и стабильным, чем Rocket. Внизу он работает с моделью актера, используемой в Erlang и Akka.

В отличие от Rocket, в нем меньше «батарей в комплекте», а это означает, что вам, скорее всего, придется использовать сторонние библиотеки для дополнительной функциональности.

Тис

Yew - это фреймворк Rust для создания веб-приложений с помощью WebAssembly. Среди его основных преимуществ он перечисляет компонентную структуру, такую как React и Elm, выдающуюся производительность благодаря поддержке многопоточности и совместимость с JavaScript.

На данный момент он не готов к производству, но должен быть отличным выбором для сторонних проектов и внутреннего инструментария, особенно если вы хотите работать с WASM.

Золя

Если вам нужно что-то быстрое и простое для обслуживания статического веб-сайта, Zola - фантастический инструмент для создания быстрых и масштабируемых веб-страниц без каких-либо других зависимостей или раздувания JS.

Деформация

Warp - это фреймворк для веб-серверов, написанный на Rust. По сравнению с Rocket и Actix, он довольно тонкий для веб-фреймворка и предоставит вам только базовую функциональность из коробки.

Разработка игр

Разработка игры на Rust

Rust уникален для разработки игр по той же причине, что и C++: он предсказуемо высокопроизводителен. Вот некоторые из движков, которые вы можете использовать для создания собственной игры на Rust.

Беви

Два основных игровых движка Rust - это Bevy и Amethyst. Среди них Беви новее и круче. Это простой движок, управляемый данными, и по сути его можно назвать Amethyst 2.0, поскольку он во многом вдохновлен им.

Чтобы узнать больше о Беви, вы можете почитать книгу Беви.

Аметист

Аметист является более зрелым из двух, и поэтому он имеет больше функций, которые могут вам понадобиться для крупномасштабного проекта, и лучшую интеграцию со сторонними библиотеками. Но Беви быстро догоняет. Если вы ищете движок для своего нового проекта, я бы порекомендовал изучить их оба и посмотреть, какой из них вам больше нравится.

ggez

Если вы ищете что-то простое для начала, ggez - это легкая кроссплатформенная игровая платформа для создания 2D-игр с минимальным трением.

Если вы хотите узнать больше о разработке игр на Rust, ознакомьтесь с разделом «Мы уже играем?»

Операционные системы

Операционные системы Rust

Rust - отличная альтернатива C при разработке операционных систем, поскольку он предлагает тот же уровень производительности, заботясь о безопасности памяти. Собственно, разработчики изучают возможность добавления Rust в ядро Linux, и Microsoft тоже экспериментирует с этим.

Вот несколько операционных систем с открытым исходным кодом, написанных исключительно на Rust:

Редокс

Redox - это операционная система, написанная на Rust, которая использует инновации Rust для создания современного микроядра.

intermezzOS

intermezzOS - это обучающая операционная система, специально ориентированная на знакомство с концепциями системного программирования опытных разработчиков из других областей программирования.

Тесей

Тесей - это новая ОС, написанная на Rust, которая представляет новую структуру ОС и утверждает, что предотвращает явление разлива состояния, которое происходит, когда состояние одного объекта постоянно изменяется в результате взаимодействия с другим.

Здесь есть о чем почитать - вот статья по проекту.

Разработка графического интерфейса

Разработка графического интерфейса на Rust

Хотя Rust не слишком известен своей способностью создавать увлекательные пользовательские интерфейсы, все же существует множество хороших библиотек для создания графических интерфейсов.

Друид

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

Чтобы узнать больше об этом, вы можете почитать книгу Друидов.

Замороженный

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

Набор инструментов для орбитальных виджетов

Orbital Widget Toolkit - это кроссплатформенный набор инструментов для создания масштабируемых пользовательских интерфейсов с помощью Rust. Он ориентирован на скорость, простоту использования и кроссплатформенную совместимость.

Тельца

Tauri - это фреймворк для создания настольных приложений для Windows, Linux и macOS. С его помощью вы можете использовать любую интерфейсную платформу, которая компилируется в HTML / CSS / JS для создания пользовательского интерфейса, и Rust в качестве бэкэнда.

Если вы хотите узнать больше о возможностях разработки графического интерфейса в Rust, вот большой пост, посвященный большинству библиотек.

Блокчейн

Блокчейн Rust

OpenEthereum

Основная цель OpenEthereum - быть самым быстрым, легким и безопасным клиентом Ethereum. Он разработан на Rust и утверждает, что предоставляет базовую инфраструктуру, которая необходима для быстрых и надежных сервисов.

Маяк

Lighthouse - это клиент Ethereum 2.0 с открытым исходным кодом, написанный на Rust и поддерживаемый Sigma Prime.

Parity Technologies: Polkadot и Substrate

Parity Technologies работает над созданием блокчейн-инфраструктуры для децентрализованной сети.

Среди его проектов - Substrate, модульная структура для разработки блокчейнов, и Polkadot, сеть блокчейнов. Оба этих проекта активно используют Rust в своих реализациях.

Другие проекты

Другие проекты Rust

Вот некоторые из проектов, которые не попадают ни в одну из категорий. Надеюсь, вы найдете что-то классное в этой коллекции «вещей». :)

Сервопривод

Servo - это прототип веб-движка, написанный на Rust. Это результат работы Mozilla над созданием нового движка браузера с открытым исходным кодом. В 2020 году Servo перешла от Mozilla к Linux Foundation.

Предполагается, что Servo более безопасен, чем браузеры, написанные на C++, из-за гарантий безопасности памяти Rust, которые уменьшают количество уязвимостей.

swc

swc - это сверхбыстрый компилятор JavaScript / TypeScript. По сравнению с Babel, он был протестирован на увеличение скорости компиляции как минимум в 18 раз.

Рюши

Хотите запускать все крутые Flash-игры, для которых Adobe недавно отключила поддержку? Вы можете использовать Ruffle, эмулятор Flash-плеера, написанный на Rust.

Вы можете попробовать это на ruffle.rs.

Сумасшедший

Lunatic - экспериментальная платформа, которая использует экземпляры WASM в качестве субъектов для структурирования выполнения. Он во многом вдохновлен Erlang.

Предполагается, что он объединяет хорошие стороны WASM и Erlang, позволяя создавать системы на основе акторов, которые одновременно являются отказоустойчивыми и невероятно быстрыми.

Звездолет

Starship - это быстрая, настраиваемая и интеллектуальная подсказка для тех, кто хочет сделать свою оболочку круче.

MeiliSearch

MeiliSearch - это мощная, быстрая, простая в использовании и настраиваемая поисковая система, которая также допускает опечатки. А теперь много прилагательных! Вы можете настроить его для своего собственного проекта вместо нестандартного и, возможно, менее производительного решения.

Есть что добавить?

Как видите, экосистема огромна, и есть что исследовать. Я определенно не мог охватить все. Если вы знаете о проекте, который заслуживает быть здесь, не бойтесь сообщить нам об этом в Твиттере!

Если вы хотите узнать больше о Rust, я предлагаю перейти в раздел нашего блога, посвященный Rust. Развлекайся!