Комментарии 17
rocket, говорят, уже умер почти, не обновляется
Rocket очень медленный, использует кучу Найтли фичей и его вообще вредно использовать.
Судя по публикациям, вы шарите в Раст. Какой веб-фрейморк посоветуете?
Можете начать с Actix. Он быстрый, фичастый из коробки и к нему уже много написано сторонних модулей.
Да и свои к нему писать не очень сложно (хоть и многословно).
И да. Про него неплохо знает ChatGPT. Поэтому можете с ним консультироваться :) но нужно следить чтобы deprecated не рекомендовал.
actix-web или axum
warp в последнее время начал подниматься, а так смотрите чо там по звёздочкам на AreWeWebYet. Предложил бы попробовать собрать одно и то же приложение на разных фреймворках, чтобы понять к какому душа лежит.
Я бы посоветовал axum. Он предоставляет тонкую оболочку над низкоуровневом HTTP фреймворком hyper, который в свою очередь базируется на библиотеке модульных компонент для написания веб сервисов tower, получая "бесплатно" кучу компонент, разработанных для данной экосистемы (например библиотека модулей tower-http предоставляет модули для добавления CORS, логирования запросов, ServeDir/ServeFile для сервинга вэб страниц и т.п.). Сам недавно сменил на проекте фреймворк с rocket на axum и результаты более чем удовлетворили. С rocket были проблемы с тем, что шаг влево-вправо и нужно выковыривать из исходников готовые компоненты и переписывать часть их реализации чтобы немного подправить поведение готовых компонент. Также при написании route handler-ов часто приходилось реализовывать rocket-овые trait-ы для доставания параметров запросов, в то время как в axum это делается автоматически, используя обычный serde::Deserialize. Могу разве что отдать должное rocket за прекрасную документацию. Из за этого и выбрал его по началу, но теперь увидел множество проблем, которые в моём случае axum решает.
Actix-Web основан на другой библиотеке (Actix, да-да, не Web а просто Actix)
Это неправда, actix-web уже очень давно не использует под капотом actix, он сам по себе. Только для прикручивания websocket'ов к actix-web приходится подключать actix.
Помимо actix-web и Rocket ещё популярен axum (от разработчиков tokio).
В 2023 пора бы уже забыть про Rocket и сразу брать Axum — он поддерживается (командой Tokio, благодаря чему хорошо интегрируется с остальной экосистемой; например, позволяет использовать готовые middleware для Tower/Hyper), быстрее, эргономичней.
Просто запускаешь .exe файл и целое приложение у тебя в одном файле, чем у PHP у которого половину папок и файлов занимает Docker и Composer.
Кто-нибудь скажет автору о различиях компилируемых языков от интерпретируемых?
Мне кажется самое главное упустили из Rust-а в web: компиляцию в WebAssembly.
Можете привести примеры, которые написаны на вышепредставленных в статье фреймворках?
Использование Rust в Веб-Разработке