Новый C++ фреймворк для веб-разработки набирает популярность: обзор возможностей
Мир веб-разработки традиционно ассоциируется с Python, JavaScript и Go. Однако в последние месяцы на арену вышел неожиданный игрок — новый фреймворк для языка C++ под названием Drogon. Этот проект стремительно набирает звезды на GitHub и привлекает внимание разработчиков, уставших от медленных интерпретируемых языков в высоконагруженных системах.
Drogon — это асинхронный, высокопроизводительный веб-фреймворк, написанный на современном C++17/20. В отличие от многих решений, он не требует зависимостей от libcurl, OpenSSL или Boost.Asio — всё необходимое для работы с HTTP/HTTPS, WebSocket и базами данных уже встроено в ядро. Это делает его идеальным выбором для микросервисов, API-шлюзов и real-time приложений.
Почему Drogon стал популярен?
- Скорость. Бенчмарки показывают, что Drogon обрабатывает до 1,5 миллиона запросов в секунду на одном ядре — это в 10 раз быстрее большинства Node.js или Python-фреймворков.
- Простота. Разработчики отмечают, что синтаксис Drogon напоминает Express.js или Flask, но с мощью C++. Для создания REST API достаточно написать всего несколько строк кода.
- Поддержка современных стандартов. Фреймворк активно использует возможности C++20: корутины, ranges, std::format. Это позволяет писать безопасный и читаемый код без ручного управления памятью.
- Экосистема. Drogon предоставляет ORM для PostgreSQL, MySQL и SQLite, встроенный шаблонизатор (аналог Jinja2) и поддержку WebSocket.
Пример кода на Drogon
Вот как выглядит минимальный REST API на Drogon:
#include <drogon/drogon.h>
using namespace drogon;
int main() {
app().registerHandler("/hello", [](const HttpRequestPtr& req,
std::function<void (const HttpResponsePtr&)> &&callback) {
auto resp = HttpResponse::newHttpResponse();
resp->setBody("Hello from C++!");
callback(resp);
});
app().addListener("0.0.0.0", 8080).run();
}
После компиляции (одной командой cmake) вы получаете бинарник размером около 3 МБ, который запускается мгновенно и потребляет всего 5-10 МБ оперативной памяти на старте.
Где применяется?
Drogon уже используют в production такие компании, как Netflix (для внутренних микросервисов), Cloudflare (для edge-вычислений) и ряд финтех-стартапов. Основные сценарии:
- Высоконагруженные API (биржи, аналитика, IoT);
- Real-time чаты и стриминг данных;
- Замена Node.js/Python в проектах, где критична задержка;
- Встраивание веб-сервера в настольные приложения (например, для локального администрирования).
Как начать?
Установка проста: на Ubuntu/Debian достаточно выполнить sudo apt install libdrogon-dev, на macOS — brew install drogon. Для Windows предусмотрены готовые .dll и инструкции на официальном сайте drogon.org.
Несмотря на то, что C++ традиционно считается сложным для веб-разработки, Drogon меняет это восприятие. Если вам