Веб-фреймворк
на чистом Си
Высокопроизводительный сервер для Linux: HTTP/1, HTTP/2 и HTTP/3 (QUIC), WebSocket, базы данных и ORM из коробки — без обратного прокси и рантайм-зависимостей
Склонируйте репозиторий, соберите проект с нужными драйверами баз данных и запустите сервер одной командой.
git clone https://github.com/fraxer/C-web-framework.git
cd C-web-framework/backend
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release \
-DINCLUDE_POSTGRESQL=yes \
-DINCLUDE_MYSQL=yes \
-DINCLUDE_REDIS=yes \
-DINCLUDE_SQLITE=yes
cmake --build . -j$(nproc)
./exec/cwfr -c /path/to/config.json{
"/": {
"GET": {
"file": "handlers/libindexpage.so",
"function": "index"
}
}
}#include "http.h"
void index(httpctx_t* ctx) {
ctx->response->send_data(
ctx->response,
"Hello world!"
);
}Обработчик — это просто функция — Каждый маршрут загружает обработчик из .so-библиотеки. Прочитайте запрос, сформируйте ответ — больше ничего настраивать не нужно.
Руководство по сборке →Полный набор инструментов для современных веб-сервисов — протоколы, базы данных, безопасность и утилиты из коробки.
Собственный стек QUIC (RFC 9000) поверх UDP: рукопожатие TLS 1.3 за один RTT, нет блокировки головы очереди, миграция соединений между сетями — телефон перешёл с Wi-Fi на LTE, соединение живо.
Мультиплексирование до 100 потоков, HPACK и защита от Rapid Reset.
Каналы реального времени с broadcasting и именованными группами.
Полный сервер и клиент: маршрутизация, виртуальные хосты, TLS.
Четыре драйвера за единой API с ORM и миграциями.
PostgreSQLMySQLRedisSQLiteАутентификация, сессии и RBAC без внешних сервисов.
Локальный FS и S3 плюс транзакционная почта с DKIM.
Шаблонизатор, i18n, JSON, JWT и планировщик задач.
Горячая перезагрузка обработчиков, логирование, HTTP-клиент, планировщик задач и другое — в документации.
Открыть документацию →Высокопроизводительные API для мобильных и веб-приложений
Чаты, уведомления и live-обновления через WebSocket
Микросервисы и монолитные приложения
Маршрутизация и проксирование запросов между сервисами
Аутентификация, RBAC и CRUD-операции
Локальное и S3-совместимое облачное хранилище
Транзакционная отправка писем с DKIM
Многоязычный контент на базе gettext и плюрализма
Изучите введение, посмотрите примеры или откройте исходный код на GitHub.