Topcoat: команда Tokio представила «Rails для Rust» 🦀
Topcoat - экспериментальный fullstack-фреймворк с готовой маршрутизацией, серверным рендерингом, компонентами и сборкой ассетов.
Главная идея — реактивность без отдельного JavaScript-кода и WASM. Вы пишете обычное типизированное Rust-выражение:
<button @click=$(|_e| open.set(!open.get()))> "Что такое Topcoat?" </button>
При первом рендере оно выполняется на сервере, а затем Topcoat переводит его в JavaScript, чтобы интерфейс мгновенно обновлялся в браузере.
Что уже есть:
- асинхронные серверные компоненты с прямым доступом к базе; - view!`-шаблоны с обычными `if и for из Rust; - маршруты, автоматически определяемые по структуре модулей; - редактируемые UI-компоненты на Tailwind в духе shadcn/ui; - встроенная сборка ассетов; - интеграции с Tailwind и htmx; - серверные функции и частичное обновление HTML.
Отдельный API-слой во многих сценариях не требуется: компонент может получить данные и сразу отрисовать страницу.
Проект пока находится на ранней экспериментальной стадии, поэтому возможны серьёзные изменения API. В планах — аутентификация, фоновые задачи, WebSocket, потоковый SSR и клиентская навигация.
https://github.com/tokio-rs/topcoat
#rust #rustlang #webdev #fullstack #tokio #opensource