Как стать автором
Обновить

Комментарии 15

rocket, говорят, уже умер почти, не обновляется

Rocket очень медленный, использует кучу Найтли фичей и его вообще вредно использовать.

Судя по публикациям, вы шарите в Раст. Какой веб-фрейморк посоветуете?

Можете начать с Actix. Он быстрый, фичастый из коробки и к нему уже много написано сторонних модулей.

Да и свои к нему писать не очень сложно (хоть и многословно).

И да. Про него неплохо знает ChatGPT. Поэтому можете с ним консультироваться :) но нужно следить чтобы deprecated не рекомендовал.

actix-web или axum

warp в последнее время начал подниматься, а так смотрите чо там по звёздочкам на AreWeWebYet. Предложил бы попробовать собрать одно и то же приложение на разных фреймворках, чтобы понять к какому душа лежит.

Не используйте фреймворки. Используйте библиотеки. Например warp.

Переходим по ссылке и читаем:

A super-easy, composable, web server framework for warp speeds.

Всё таки warp это фреймворк. Хоть и очень легковесный и быстрый.

Я бы посоветовал 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.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории