Перейти к основному содержимому

Open-source веб-фреймворки

Разработчику Архитектору

О чём материал

Веб-фреймворк — библиотека или набор соглашений, который берёт на себя маршрутизацию HTTP, парсинг запросов, шаблоны, работу с сессиями и часто — ORM. Разработчик пишет бизнес-логику, не собирая сервер «с нуля».

Ниже — карта open-source решений по языкам. Это не рейтинг: у каждого стека свой контекст (команда, хостинг, нагрузка). Подробнее про выбор стека — Как делают веб-приложения; углубление по языку — в разделе 5. Языки.

ТипЧто делаетПримеры
Полный стекMVC, ORM, шаблоны, auth «из коробки»Django, Rails, Laravel
МикрофреймворкТонкий HTTP-слой, остальное — ваш выборFlask, Sinatra, Slim
API-firstREST/GraphQL, JSON, OpenAPIFastAPI, NestJS, Axum
Meta-frameworkUI + маршрутизация + SSR/SSG поверх библиотекиNext.js, Nuxt, SvelteKit

Python

Интерфейсы: WSGI (синхронный) и ASGI (асинхронный, WebSocket). Подробнее — Экосистема Python-приложений.

ФреймворкСутьКогда выбирать
DjangoПолный стек: ORM, админка, шаблоны, authCMS, внутренние системы, монолиты — Django
FlaskМикрокаркас без навязанной структурыНебольшие API, прототипы — Flask
FastAPIASGI, типы, автогенерация OpenAPIВысоконагруженные API, микросервисы — FastAPI
PyramidГибкая «пирамида»: от одного файла до крупного проектаКогда нужен контроль над слоями без жёсткого монолита
TornadoСобственный event loop, long polling, WebSocketДолгие соединения, чаты, прокси
BottleОдин модуль, без зависимостейУтилиты, встраивание в другое ПО
FalconМинималистичный API-слой, фокус на скоростиREST-микросервисы, высокая плотность RPS
SanicASGI, синтаксис в духе Flask, высокая скоростьAsync API, real-time
StarletteНизкоуровневый ASGI-каркасОснова FastAPI; кастомные ASGI-приложения
HugДекораторы → автодокументация APIБыстрые внутренние API
CherryPyООП: объекты публикуются как URLВстраиваемые веб-серверы, legacy
Web2pyFull-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Высокая производительность, схемы JSONAPI с валидацией и плагинами
NestJSTypeScript, модули, DI, структура как в AngularEnterprise-бэкенд на Node
KoaОт авторов Express; async middleware через ctxСовременный минимализм без callback-ада
HapiКонфигурация через объекты, встроенная валидацияКрупные API с жёсткими контрактами
HonoЛёгкий, работает на Node, Deno, Bun, edgeEdge functions, serverless
AdonisJSMVC «как Laravel» для NodeFull-stack на одном стеке JS
FeathersJSREST + WebSocket, hooksReal-time API, чаты
MeteorFull-stack JS, DDP, публикации на клиентПрототипы с live-данными (ниша сузилась)

Meta-frameworks (UI + маршрутизация + SSR)

ФреймворкСутьКогда выбирать
Next.jsReact + SSR/SSG, App RouterПубличные сайты, SEO — Next.js
NuxtVue + SSR/SSG, файловая маршрутизацияVue-продукты с SEO
SvelteKitSvelte + адаптеры деплояБыстрый UI, малый бандл
RemixReact, web standards, nested routesФормы, прогрессивное улучшение
Blitz.jsКонвенции поверх Next.jsFull-stack React с нулевым API-слоем
RedwoodJSJamstack: 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
MicronautDI на этапе компиляции, быстрый стартМикросервисы, serverless на JVM
Quarkus«Kubernetes-native», GraalVM native imageОблако, низкое потребление памяти
DropwizardJetty + JAX-RS + metrics «из коробки»Ops-friendly REST-сервисы
Play FrameworkРеактивный, Netty, Java и ScalaВысоконагруженные API — Play
HelidonМикросервисы от Oracle (SE и MP)Лёгкие сервисы на OpenJDK
Eclipse Vert.xEvent loop, неблокирующий I/OIoT, шлюзы, высокая плотность соединений
GrailsGroovy, соглашения Rails на JVMБыстрый CRUD в Java-ландшафте
VaadinUI на 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Простые сервисы
PoemOpenAPI, middleware, WebSocketДокументированные API
SalvoМодульный роутер, плагиныГибкая композиция handlers

Go

Основа — net/http; фреймворки добавляют маршрутизацию и middleware. Обзор — Экосистема Go.

ФреймворкСутьКогда выбирать
GinБыстрый роутер, JSON-валидацияПопулярный выбор для REST API
EchoМинимализм, расширяемые middlewareAPI с кастомными цепочками
FiberExpress-подобный API, быстрый роутерМиграция с Node, высокий RPS
ChiЛёгкий роутер поверх net/httpИдиоматичный Go без «магии»
RevelFull-stack MVC, hot reloadКлассические веб-приложения
BeegoMVC, ORM, встроенные инструментыМонолиты в стиле Django/Rails
BuffaloБыстрый старт, генераторы, webpackПрототипы full-stack на Go
IrisБогатый набор функций в одном пакетеКогда нужен «всё в одном»

Ruby

Основа серверных приложений — Rack. Обзор — Фреймворки и экосистема Ruby.

ФреймворкСутьКогда выбирать
Ruby on RailsCoC, DRY, полный стекCRUD, стартапы, внутренние системы — Rails
SinatraDSL в несколько строкМикросервисы, API, serverless
HanamiСлои, без monkey-patchingДолгоживущие enterprise-проекты
PadrinoMountable apps поверх SinatraНесколько мини-приложений в одном процессе

PHP

Традиционно LAMP; современный стандарт — Laravel. Обзор — Экосистема PHP.

ФреймворкСутьКогда выбирать
LaravelEloquent, Artisan, экосистема пакетовБольшинство новых PHP-проектов — Laravel
SymfonyМодульные компоненты, стабильностьEnterprise, основа Laravel
CodeIgniterЛёгкий MVC, мало «магии»Shared-хостинг, простые сайты
YiiПроизводительность, Gii-генераторыСложные приложения на PHP
CakePHPКонвенции, scaffoldingБыстрый CRUD, обучение
SlimPSR-7, микрофреймворкМикросервисы и API
PhalconРасширение на C, низкие накладные расходыВысокая нагрузка на PHP
LaminasПреемник Zend FrameworkКорпоративные стандарты PHP
FuelPHPHMVC, гибкая маршрутизацияАльтернатива классическому MVC

.NET / C#

Платформа .NET, язык чаще C#. Обзор — Экосистема .NET.

ФреймворкСутьКогда выбирать
ASP.NET CoreКроссплатформенный хост, middleware, DIСовременный бэкенд и API — ASP.NET Core
ASP.NET MVCModel–View–Controller на .NETСерверный рендер, Razor Pages
BlazorUI на C# (Server или WebAssembly)Веб без отдельного JS-фронта
SignalRWebSocket/long polling hubЧаты, live-уведомления, дашборды

Scala (JVM)

Типобезопасность и функциональный стиль. Обзор — JVM-приложения на Scala.

ФреймворкСутьКогда выбирать
Play FrameworkРеактивный, Netty, Java/ScalaREST, высоконагруженные сайты — Play
Akka HTTPHTTP поверх акторов AkkaПотоковые API, интеграция с Akka
ScalatraSinatra-подобный микрофреймворкЛёгкие сервисы (LinkedIn Signal API)
FastScalaСерверные callbacks, UI почти целиком на ScalaФормы, таблицы, модалки без отдельного SPA

Dart

Основной фокус экосистемы — Flutter; для чистого HTTP-сервера:

ФреймворкСутьКогда выбирать
ShelfНизкоуровневый pipeline middleware + handlersКастомные серверы, пакеты поверх HTTP
AqueductORM, auth, OpenAPI (проект заморожен)Legacy Dart-бэкенды; новые — Shelf + dart_frog

Подробнее — Архитектура Dart.


C++

Высокая производительность, ручное управление ресурсами. Обзор — Экосистема C++.

ФреймворкСутьКогда выбирать
DrogonAsync, coroutines, высокий RPSСовременные API на C++
CrowМинимализм в духе FlaskБыстрые микросервисы
CPPCMSКроссплатформенный веб-фреймворкШаблоны, формы, сессии
RestbedАсинхронный REST, OpenAPIВстраиваемые HTTP-сервисы
Oat++«Нулевой» overhead, asyncIoT, edge, встроенные системы
PistacheHTTP/1.1, типобезопасный APIREST поверх Asio

Kotlin (JVM и Multiplatform)

Корутины и лаконичный синтаксис. Обзор — Экосистема Kotlin.

ФреймворкСутьКогда выбирать
KtorAsync сервер и клиент от JetBrainsKotlin-first API — Ktor
JavalinМинималистичный wrapper над JettyПростые REST без тяжёлого стека
Spring Boot + KotlinSpring с идиоматичным KotlinEnterprise рядом с Java
Compose MultiplatformUI на Kotlin (в т.ч. экспериментальный web)Общий код клиента — KMP

Haskell

Чистые функции + монады для IO. Обзор — Архитектура Haskell.

ФреймворкСутьКогда выбирать
YesodТипобезопасные маршруты, виджетыFull-stack с сильной типизацией URL
ServantAPI как типы, автогенерация клиентаКонтрактные REST API
ScottyМинималистичный WAI-роутерЛёгкие HTTP-сервисы
SnapСобственный HTTP-сервер + компонентыСамостоятельный стек без WAI

Lua

Встраиваемый язык; веб — через OpenResty. Обзор — Экосистема Lua.

ФреймворкСутьКогда выбирать
OpenRestyNginx + LuaJITШлюзы, auth, rate limit на edge
LapisMVC поверх OpenRestyПолноценные приложения на Lua/Nginx

Swift

Серверный Swift на SwiftNIO. Обзор — Экосистема Swift.

ФреймворкСутьКогда выбирать
VaporПопулярный серверный стек, Fluent ORMОсновной выбор для Swift API
KituraОт IBM, замедленное развитиеLegacy Swift-серверы
PerfectFull-stack, шаблоны, ORMМонолиты на Swift (ниша)
HummingbirdЛёгкий, модульный, на SwiftNIOМикросервисы, кастомизация

Как пользоваться справочником

  1. Определите слой: только API, серверный HTML или SPA + APIглава 4.
  2. Сузьте язык по команде и инфраструктуре — языки.
  3. Сравните 2–3 кандидата из таблицы выше; проверьте LTS, размер сообщества, hiring.
  4. Для учёбы начните с одного стека из практического маршрута (например Django или Express + React).

Связанные материалы

ТемаСтатья
HTTP, REST, JSONЧто такое веб-разработка
MERN, LAMP, деплойКак делают веб-приложения
ORM4.10 ORM
Фронтенд и бэкенд1.23