Open-source веб-фреймворки
О чём материал
Веб-фреймворк — библиотека или набор соглашений, который берёт на себя маршрутизацию HTTP, парсинг запросов, шаблоны, работу с сессиями и часто — ORM. Разработчик пишет бизнес-логику, не собирая сервер «с нуля».
Ниже — карта open-source решений по языкам. Это не рейтинг: у каждого стека свой контекст (команда, хостинг, нагрузка). Подробнее про выбор стека — Как делают веб-приложения; углубление по языку — в разделе 5. Языки.
| Тип | Что делает | Примеры |
|---|---|---|
| Полный стек | MVC, ORM, шаблоны, auth «из коробки» | Django, Rails, Laravel |
| Микрофреймворк | Тонкий HTTP-слой, остальное — ваш выбор | Flask, Sinatra, Slim |
| API-first | REST/GraphQL, JSON, OpenAPI | FastAPI, NestJS, Axum |
| Meta-framework | UI + маршрутизация + SSR/SSG поверх библиотеки | Next.js, Nuxt, SvelteKit |
Python
Интерфейсы: WSGI (синхронный) и ASGI (асинхронный, WebSocket). Подробнее — Экосистема Python-приложений.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Django | Полный стек: ORM, админка, шаблоны, auth | CMS, внутренние системы, монолиты — Django |
| Flask | Микрокаркас без навязанной структуры | Небольшие API, прототипы — Flask |
| FastAPI | ASGI, типы, автогенерация OpenAPI | Высоконагруженные API, микросервисы — FastAPI |
| Pyramid | Гибкая «пирамида»: от одного файла до крупного проекта | Когда нужен контроль над слоями без жёсткого монолита |
| Tornado | Собственный event loop, long polling, WebSocket | Долгие соединения, чаты, прокси |
| Bottle | Один модуль, без зависимостей | Утилиты, встраивание в другое ПО |
| Falcon | Минималистичный API-слой, фокус на скорости | REST-микросервисы, высокая плотность RPS |
| Sanic | ASGI, синтаксис в духе Flask, высокая скорость | Async API, real-time |
| Starlette | Низкоуровневый ASGI-каркас | Основа FastAPI; кастомные ASGI-приложения |
| Hug | Декораторы → автодокументация API | Быстрые внутренние API |
| CherryPy | ООП: объекты публикуются как URL | Встраиваемые веб-серверы, legacy |
| Web2py | Full-stack + веб-IDE, миграции | Обучение, быстрые CRUD без CLI |
| TurboGears | Композиция Pylons/Werkzeug/SQLAlchemy | Гибкий full-stack между Flask и Django |
| Litestar | Современный ASGI (бывш. Starlite), типы, OpenAPI | Типизированные API на Python 3.10+ |
JavaScript (Node.js и браузер)
Сервер — Node.js; UI — React, Vue, Svelte. Карта экосистемы — JavaScript — Runtime и Frameworks.
Бэкенд и fullstack на Node.js
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Express | Де-факто стандарт минимального HTTP на Node | Первый API, middleware-цепочки — Express |
| Fastify | Высокая производительность, схемы JSON | API с валидацией и плагинами |
| NestJS | TypeScript, модули, DI, структура как в Angular | Enterprise-бэкенд на Node |
| Koa | От авторов Express; async middleware через ctx | Современный минимализм без callback-ада |
| Hapi | Конфигурация через объекты, встроенная валидация | Крупные API с жёсткими контрактами |
| Hono | Лёгкий, работает на Node, Deno, Bun, edge | Edge functions, serverless |
| AdonisJS | MVC «как Laravel» для Node | Full-stack на одном стеке JS |
| FeathersJS | REST + WebSocket, hooks | Real-time API, чаты |
| Meteor | Full-stack JS, DDP, публикации на клиент | Прототипы с live-данными (ниша сузилась) |
Meta-frameworks (UI + маршрутизация + SSR)
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Next.js | React + SSR/SSG, App Router | Публичные сайты, SEO — Next.js |
| Nuxt | Vue + SSR/SSG, файловая маршрутизация | Vue-продукты с SEO |
| SvelteKit | Svelte + адаптеры деплоя | Быстрый UI, малый бандл |
| Remix | React, web standards, nested routes | Формы, прогрессивное улучшение |
| Blitz.js | Конвенции поверх Next.js | Full-stack React с нулевым API-слоем |
| RedwoodJS | Jamstack: React + GraphQL + Prisma | Стартапы на едином стеке |
Java (JVM)
Стандарты: Jakarta EE, de-facto лидер — Spring Boot. Обзор — Экосистема Java-приложений.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Spring Boot | Автоконфигурация, стартеры, embedded Tomcat | Большинство новых enterprise API — Spring Boot |
| Jakarta EE | Спецификации: Servlet, JPA, CDI, JAX-RS | Корпоративные стандарты, application server |
| Micronaut | DI на этапе компиляции, быстрый старт | Микросервисы, serverless на JVM |
| Quarkus | «Kubernetes-native», GraalVM native image | Облако, низкое потребление памяти |
| Dropwizard | Jetty + JAX-RS + metrics «из коробки» | Ops-friendly REST-сервисы |
| Play Framework | Реактивный, Netty, Java и Scala | Высоконагруженные API — Play |
| Helidon | Микросервисы от Oracle (SE и MP) | Лёгкие сервисы на OpenJDK |
| Eclipse Vert.x | Event loop, неблокирующий I/O | IoT, шлюзы, высокая плотность соединений |
| Grails | Groovy, соглашения Rails на JVM | Быстрый CRUD в Java-ландшафте |
| Vaadin | UI на Java, рендер в браузер | Внутренние панели без отдельного фронта |
| JSF | Компонентный UI (JavaServer Faces) | Legacy enterprise-формы |
| Thymeleaf | Серверные HTML-шаблоны | SSR в связке со Spring MVC |
| Spring MVC | Классический MVC в экосистеме Spring | Монолиты с серверным рендером |
Rust
Async-рантайм Tokio; сериализация Serde. Обзор — Экосистема Rust.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Actix Web | Акторная модель, высокие бенчмарки | Микросервисы, API-шлюзы |
| Axum | От команды Tokio, extractors, Tower | Современный REST на Rust |
| Rocket | Макросы маршрутов, удобство разработки | Прототипы, средние API |
| Warp | Композиция «фильтров» | Декларативные маршруты |
| Tide | Минималистичный async от http-rs | Простые сервисы |
| Poem | OpenAPI, middleware, WebSocket | Документированные API |
| Salvo | Модульный роутер, плагины | Гибкая композиция handlers |
Go
Основа — net/http; фреймворки добавляют маршрутизацию и middleware. Обзор — Экосистема Go.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Gin | Быстрый роутер, JSON-валидация | Популярный выбор для REST API |
| Echo | Минимализм, расширяемые middleware | API с кастомными цепочками |
| Fiber | Express-подобный API, быстрый роутер | Миграция с Node, высокий RPS |
| Chi | Лёгкий роутер поверх net/http | Идиоматичный Go без «магии» |
| Revel | Full-stack MVC, hot reload | Классические веб-приложения |
| Beego | MVC, ORM, встроенные инструменты | Монолиты в стиле Django/Rails |
| Buffalo | Быстрый старт, генераторы, webpack | Прототипы full-stack на Go |
| Iris | Богатый набор функций в одном пакете | Когда нужен «всё в одном» |
Ruby
Основа серверных приложений — Rack. Обзор — Фреймворки и экосистема Ruby.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Ruby on Rails | CoC, DRY, полный стек | CRUD, стартапы, внутренние системы — Rails |
| Sinatra | DSL в несколько строк | Микросервисы, API, serverless |
| Hanami | Слои, без monkey-patching | Долгоживущие enterprise-проекты |
| Padrino | Mountable apps поверх Sinatra | Несколько мини-приложений в одном процессе |
PHP
Традиционно LAMP; современный стандарт — Laravel. Обзор — Экосистема PHP.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Laravel | Eloquent, Artisan, экосистема пакетов | Большинство новых PHP-проектов — Laravel |
| Symfony | Модульные компоненты, стабильность | Enterprise, основа Laravel |
| CodeIgniter | Лёгкий MVC, мало «магии» | Shared-хостинг, простые сайты |
| Yii | Производительность, Gii-генераторы | Сложные приложения на PHP |
| CakePHP | Конвенции, scaffolding | Быстрый CRUD, обучение |
| Slim | PSR-7, микрофреймворк | Микросервисы и API |
| Phalcon | Расширение на C, низкие накладные расходы | Высокая нагрузка на PHP |
| Laminas | Преемник Zend Framework | Корпоративные стандарты PHP |
| FuelPHP | HMVC, гибкая маршрутизация | Альтернатива классическому MVC |
.NET / C#
Платформа .NET, язык чаще C#. Обзор — Экосистема .NET.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| ASP.NET Core | Кроссплатформенный хост, middleware, DI | Современный бэкенд и API — ASP.NET Core |
| ASP.NET MVC | Model–View–Controller на .NET | Серверный рендер, Razor Pages |
| Blazor | UI на C# (Server или WebAssembly) | Веб без отдельного JS-фронта |
| SignalR | WebSocket/long polling hub | Чаты, live-уведомления, дашборды |
Scala (JVM)
Типобезопасность и функциональный стиль. Обзор — JVM-приложения на Scala.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Play Framework | Реактивный, Netty, Java/Scala | REST, высоконагруженные сайты — Play |
| Akka HTTP | HTTP поверх акторов Akka | Потоковые API, интеграция с Akka |
| Scalatra | Sinatra-подобный микрофреймворк | Лёгкие сервисы (LinkedIn Signal API) |
| FastScala | Серверные callbacks, UI почти целиком на Scala | Формы, таблицы, модалки без отдельного SPA |
Dart
Основной фокус экосистемы — Flutter; для чистого HTTP-сервера:
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Shelf | Низкоуровневый pipeline middleware + handlers | Кастомные серверы, пакеты поверх HTTP |
| Aqueduct | ORM, auth, OpenAPI (проект заморожен) | Legacy Dart-бэкенды; новые — Shelf + dart_frog |
Подробнее — Архитектура Dart.
C++
Высокая производительность, ручное управление ресурсами. Обзор — Экосистема C++.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Drogon | Async, coroutines, высокий RPS | Современные API на C++ |
| Crow | Минимализм в духе Flask | Быстрые микросервисы |
| CPPCMS | Кроссплатформенный веб-фреймворк | Шаблоны, формы, сессии |
| Restbed | Асинхронный REST, OpenAPI | Встраиваемые HTTP-сервисы |
| Oat++ | «Нулевой» overhead, async | IoT, edge, встроенные системы |
| Pistache | HTTP/1.1, типобезопасный API | REST поверх Asio |
Kotlin (JVM и Multiplatform)
Корутины и лаконичный синтаксис. Обзор — Экосистема Kotlin.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Ktor | Async сервер и клиент от JetBrains | Kotlin-first API — Ktor |
| Javalin | Минималистичный wrapper над Jetty | Простые REST без тяжёлого стека |
| Spring Boot + Kotlin | Spring с идиоматичным Kotlin | Enterprise рядом с Java |
| Compose Multiplatform | UI на Kotlin (в т.ч. экспериментальный web) | Общий код клиента — KMP |
Haskell
Чистые функции + монады для IO. Обзор — Архитектура Haskell.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Yesod | Типобезопасные маршруты, виджеты | Full-stack с сильной типизацией URL |
| Servant | API как типы, автогенерация клиента | Контрактные REST API |
| Scotty | Минималистичный WAI-роутер | Лёгкие HTTP-сервисы |
| Snap | Собственный HTTP-сервер + компоненты | Самостоятельный стек без WAI |
Lua
Встраиваемый язык; веб — через OpenResty. Обзор — Экосистема Lua.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| OpenResty | Nginx + LuaJIT | Шлюзы, auth, rate limit на edge |
| Lapis | MVC поверх OpenResty | Полноценные приложения на Lua/Nginx |
Swift
Серверный Swift на SwiftNIO. Обзор — Экосистема Swift.
| Фреймворк | Суть | Когда выбирать |
|---|---|---|
| Vapor | Популярный серверный стек, Fluent ORM | Основной выбор для Swift API |
| Kitura | От IBM, замедленное развитие | Legacy Swift-серверы |
| Perfect | Full-stack, шаблоны, ORM | Монолиты на Swift (ниша) |
| Hummingbird | Лёгкий, модульный, на SwiftNIO | Микросервисы, кастомизация |
Как пользоваться справочником
- Определите слой: только API, серверный HTML или SPA + API — глава 4.
- Сузьте язык по команде и инфраструктуре — языки.
- Сравните 2–3 кандидата из таблицы выше; проверьте LTS, размер сообщества, hiring.
- Для учёбы начните с одного стека из практического маршрута (например Django или Express + React).
Связанные материалы
| Тема | Статья |
|---|---|
| HTTP, REST, JSON | Что такое веб-разработка |
| MERN, LAMP, деплой | Как делают веб-приложения |
| ORM | 4.10 ORM |
| Фронтенд и бэкенд | 1.23 |