Rust с открытым исходным кодом: 24 потрясающих фреймворка, проектов и библиотек
Перевод | Автор оригинала: Gints Dreimanis
У 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 уникален для разработки игр по той же причине, что и C++: он предсказуемо высокопроизводителен. Вот некоторые из движков, которые вы можете использовать для создания собственной игры на Rust.
Беви
Два основных игровых движка Rust - это Bevy и Amethyst. Среди них Беви новее и круче. Это простой движок, управляемый данными, и по сути его можно назвать Amethyst 2.0, поскольку он во многом вдохновлен им.
Чтобы узнать больше о Беви, вы можете почитать книгу Беви.
Аметист
Аметист является более зрелым из двух, и поэтому он имеет больше функций, которые могут вам понадобиться для крупномасштабного проекта, и лучшую интеграцию со сторонними библиотеками. Но Беви быстро догоняет. Если вы ищете движок для своего нового проекта, я бы порекомендовал изучить их оба и посмотреть, какой из них вам больше нравится.
ggez
Если вы ищете что-то простое для начала, ggez - это легкая кроссплатформенная игровая платформа для создания 2D-игр с минимальным трением.
Если вы хотите узнать больше о разработке игр на Rust, ознакомьтесь с разделом «Мы уже играем?»
Операционные системы
Rust - отличная альтернатива C при разработке операционных систем, поскольку он предлагает тот же уровень производительности, заботясь о безопасности памяти. Собственно, разработчики изучают возможность добавления Rust в ядро Linux, и Microsoft тоже экспериментирует с этим.
Вот несколько операционных систем с открытым исходным кодом, написанных исключительно на Rust:
Редокс
Redox - это операционная система, написанная на Rust, которая использует инновации Rust для создания современного микроядра.
intermezzOS
intermezzOS - это обучающая операционная система, специально ориентированная на знакомство с концепциями системного программирования опытных разработчиков из других областей программирования.
Тесей
Тесей - это новая ОС, написанная на Rust, которая представляет новую структуру ОС и утверждает, что предотвращает явление разлива состояния, которое происходит, когда состояние одного объекта постоянно изменяется в результате взаимодействия с другим.
Здесь есть о чем почитать - вот статья по проекту.
Разработка графического интерфейса
Хотя Rust не слишком известен своей способностью создавать увлекательные пользовательские интерфейсы, все же существует множество хороших библиотек для создания графических интерфейсов.
Друид
Druid - это экспериментальный набор инструментов пользовательского интерфейса для Rust, ориентированный на создание простого и безупречного пользовательского интерфейса. Он ориентирован на данные и вдохновлен современными фреймворками, такими как Flutter, SwiftUI и другими.
Чтобы узнать больше об этом, вы можете почитать книгу Друидов.
Замороженный
Iced - это кроссплатформенная библиотека графического интерфейса, ориентированная на простоту и безопасность типов. Он во многом вдохновлен Вязом. Хотя сейчас это все еще экспериментально, это отличный вариант для создания графического интерфейса прямо в Rust для вашего стороннего проекта.
Набор инструментов для орбитальных виджетов
Orbital Widget Toolkit - это кроссплатформенный набор инструментов для создания масштабируемых пользовательских интерфейсов с помощью Rust. Он ориентирован на скорость, простоту использования и кроссплатформенную совместимость.
Тельца
Tauri - это фреймворк для создания настольных приложений для Windows, Linux и macOS. С его помощью вы можете использовать любую интерфейсную платформу, которая компилируется в HTML / CSS / JS для создания пользовательского интерфейса, и Rust в качестве бэкэнда.
Если вы хотите узнать больше о возможностях разработки графического интерфейса в Rust, вот большой пост, посвященный большинству библиотек.
Блокчейн
OpenEthereum
Основная цель OpenEthereum - быть самым быстрым, легким и безопасным клиентом Ethereum. Он разработан на Rust и утверждает, что предоставляет базовую инфраструктуру, которая необходима для быстрых и надежных сервисов.
Маяк
Lighthouse - это клиент Ethereum 2.0 с открытым исходным кодом, написанный на Rust и поддерживаемый Sigma Prime.
Parity Technologies: Polkadot и Substrate
Parity Technologies работает над созданием блокчейн-инфраструктуры для децентрализованной сети.
Среди его проектов - Substrate, модульная структура для разработки блокчейнов, и Polkadot, сеть блокчейнов. Оба этих проекта активно используют 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. Развлекайся!