Skip to content
Открытый исходный код · MIT

Веб-фреймворк на Си

Высокопроизводительная платформа для создания веб-приложений на Linux

HTTP/1.1 WebSocket PostgreSQL
Быстрый старт

Запустите сервер за пару команд

Склонируйте репозиторий, соберите проект с нужными драйверами баз данных и запустите сервер одной командой.

bash
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/cpdy -c /path/to/config.json
Маршрут — config.json
{
  "/": {
    "GET": {
      "file": "handlers/libindexpage.so",
      "function": "index"
    }
  }
}
Обработчик — handlers/indexpage.c
#include "http.h"

void index(httpctx_t* ctx) {
  ctx->response->send_data(
    ctx->response,
    "Hello world!"
  );
}

Обработчик — это просто функция — Каждый маршрут загружает обработчик из .so-библиотеки. Прочитайте запрос, сформируйте ответ — больше ничего настраивать не нужно.

Руководство по сборке →
Возможности

Всё необходимое в одном фреймворке

Полный набор инструментов для современных веб-сервисов — протоколы, базы данных, безопасность и утилиты из коробки.

HTTP/1.1

Полный HTTP/1.1 сервер и клиент — маршрутизация, виртуальные хосты, middleware и TLS.

  • Полная поддержка HTTP/1.1
  • Гибкая маршрутизация с динамическими параметрами
  • Виртуальные хосты с regex-доменами и поддержкой IDN
  • Middleware и фильтры: gzip, range, chunked, cache control
  • Cookie с secure, httpOnly, sameSite
  • Обработка multipart/form-data и загрузка файлов
  • Автоматическое сжатие gzip для поддерживаемых типов
  • Редиректы с регулярными выражениями и группами захвата
  • Встроенный HTTP-клиент: TLS 1.2+, keep-alive pool, редиректы
Подробнее

WebSocket

Двунаправленные каналы реального времени с broadcasting и именованными группами.

  • Полная поддержка протокола WebSocket
  • Система broadcasting для групп клиентов
  • Именованные каналы с фильтрацией получателей
  • Встроенная поддержка JSON-сообщений
  • Middleware для WebSocket-запросов
Подробнее

Базы данных

PostgreSQL, MySQL, SQLite и Redis за единой API с ORM и миграциями.

  • PostgreSQL — нативная поддержка с prepared statements
  • MySQL — нативная поддержка с защитой от SQL-инъекций
  • SQLite — встраиваемая БД без отдельного сервера
  • Redis — для кеширования и сессий
  • ORM-модели для работы с таблицами
  • Миграции — версионирование схемы базы данных
  • Query Builder — безопасное построение SQL-запросов
  • Транзакции и connection pool
Подробнее

Безопасность

Аутентификация, сессии, RBAC, rate limiting и современное хеширование паролей.

  • Встроенная система регистрации и авторизации
  • Сессии на файлах, в Redis и в базе данных
  • Секреты сессий защищены через AES-256-GCM
  • Хеширование паролей PBKDF2-HMAC-SHA256
  • Валидаторы email, паролей и других данных
  • RBAC — система ролевого доступа
  • Rate Limiting — защита от DDoS
Подробнее

Хранилище и Email

Локальное и S3-хранилище плюс транзакционная почта с DKIM.

  • Локальное файловое хранилище
  • S3-совместимые сервисы
  • CRUD-операции над файлами
  • multipart-загрузка с сохранением в хранилище
  • SMTP-клиент для отправки писем
  • DKIM-подписи для аутентификации отправителя
  • Шаблоны писем
Подробнее

Инструменты

Шаблонизатор, i18n, JSON, JWT, планировщик задач и набор str_t / HashMap.

  • Шаблонизатор: переменные, циклы, интеграция с моделями
  • i18n на базе gettext: плюрализм, автоопределение языка, fallback
  • Высокопроизводительный JSON-парсер и сериализация
  • JWT, UUID, Base64, SHA-1/256
  • Планировщик задач: interval, daily, weekly, monthly
  • AES-256-GCM, генератор случайных чисел
  • str_t с SSO, Array, HashMap/Map, упорядоченная очередь
Подробнее
Области применения

Где применяется фреймворк

REST API

Высокопроизводительные API для мобильных и веб-приложений

Real-time

Чаты, уведомления и live-обновления через WebSocket

Микросервисы

Микросервисы и монолитные приложения

API Gateway

Маршрутизация и проксирование запросов между сервисами

Админ-панели

Аутентификация, RBAC и CRUD-операции

Загрузка файлов

Локальное и S3-совместимое облачное хранилище

Email-сервисы

Транзакционная отправка писем с DKIM

i18n

Многоязычный контент на базе gettext и плюрализма

Начните прямо сейчас

Создавайте быстрые веб-сервисы на Си

Изучите введение, посмотрите примеры или откройте исходный код на GitHub.

Выпущено под лицензией MIT.