Flutter на клиенте, Fletch на сервере: бэкенд на знакомом Dart
Представьте, что вам не нужно переключаться между Dart и Node.js или Python. Fletch — это HTTP-фреймворк на Dart, который позволяет писать бэкенд на том же языке, что и клиент. Это устраняет рассинхронизацию моделей и бизнес-логики, так как вы используете единый стек для всей архитектуры.
Архитектурно Fletch напоминает популярный Express из мира JavaScript: там есть маршрутизация, middleware, сессии и DI. Но важно понимать: это не порт. У Fletch собственные типы Request и Response, а также уникальный конвейер обработки. JavaScript-мидлварь из npm здесь не сработает, поэтому перенос привычек требует осторожности.
⚡ Производительность впечатляет. В бенчмарке Dartmark (18 июня 2026) Fletch 2.3.0 показал 16 590 запросов в секунду. Это всего на 2.61% ниже чистой реализации на dart:io. Для сравнения: Dart Frog показал ~9 984, а Shelf — ~9 888 req/s. Секрет скорости — в radix-маршрутизаторе и оптимизированном пути для маршрутов без middleware.
🔧 Инженерные решения продуманы до мелочей. В версии 2.3.0 добавлены необязательные параметры в путях (через знак вопроса). Система валидации строго проверяет JSON: если клиент слал битые данные, вы получите корректный 400, а не 500. Также реализована поддержка Server-Sent Events (SSE) для потоковой передачи данных без постоянного опроса.
⚠️ Однако есть нюансы. Middleware оборачивает только зарегистрированные маршруты, поэтому нельзя полагаться на app.use() для глобального перехвата всех запросов. Стандартное хранилище сессий работает в памяти, что означает потерю данных при перезапуске. Для продакшена потребуется внешний хранилище, например, Redis, так как готового адаптера в пакете нет.
📦 Фреймворк берет на себя только HTTP-часть. Выбор БД, очередей и систем авторизации остается за вами. Это дает свободу, но требует самостоятельной сборки инфраструктуры. Зато вы получаете нативную компиляцию в исполняемый файл, который включает рантайм Dart. Не нужно устанавливать SDK на сервере.
💡 Главная ценность — простота и скорость прототипирования. Если вы уверенно владеете Dart, Fletch позволит быстро собрать API для мобильных приложений или внутренних сервисов. Порог входа низкий, а путь от запроса до обработчика легко отслеживается.
Начните с одного маршрута и проверьте ключевые сценарии. Если проекту нужны готовые ORM или генерация SDK, оценивайте их наличие отдельно. Fletch — это фундамент, который дает контроль над каждым байтом вашего сервера.
🔗 Полезные ссылки
Fletch на pub.dev
🔗 Полезные ссылки
📦 fletch
📚 pub.dev
📰 Читать оригинал на Habr
FlutterPulse — канал о мире Flutter!
#flutter #dart #flutterpulse #flutterpulsehabr
Post #3158
77
- 👍 1