Skip to content

Введение

C Web Framework — это высокопроизводительный фреймворк, написанный на языке C и предназначенный для разработки веб-приложений на Linux. Построен на event-driven архитектуре epoll, которая эффективно обрабатывает большое количество одновременных соединений.

Фреймворк предоставляет полный набор инструментов для разработки современных веб-приложений: от базового HTTP-сервера до интеграции с базами данных, WebSocket-соединений, системы аутентификации и файлового хранилища.

Возможности

HTTP-сервер

  • Полная поддержка HTTP/1.1
  • Гибкая система маршрутизации с динамическими параметрами
  • Middleware для HTTP и WebSocket запросов
  • Встроенные фильтры: chunked encoding, range requests, gzip, cache control
  • Обработка multipart/form-data и загрузка файлов
  • Полная поддержка cookie с secure, httpOnly, sameSite
  • Автоматическое сжатие gzip для поддерживаемых типов контента
  • TLS/SSL с настраиваемыми cipher suites
  • Редиректы с поддержкой регулярных выражений

WebSocket

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

Базы данных

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

Аутентификация и безопасность

  • Встроенная система регистрации и авторизации
  • Сессии на файлах и Redis
  • Хеширование паролей с солью
  • Валидаторы для email, паролей и других данных
  • Middleware аутентификации для защиты маршрутов
  • RBAC — система ролевого доступа
  • Rate Limiting — ограничение частоты запросов (защита от DDoS)

Файловое хранилище

  • Локальное хранилище — операции с файловой системой
  • S3-совместимое хранилище — интеграция с S3 и совместимыми сервисами
  • Операции с файлами: создание, чтение, обновление, удаление
  • Обработка multipart-загрузок с сохранением в хранилище

Email

  • SMTP-клиент для отправки писем
  • Поддержка DKIM-подписей для аутентификации отправителя
  • Шаблоны писем

Шаблонизатор

  • Встроенный шаблонизатор
  • Переменные и циклы для динамической генерации HTML
  • Интеграция с моделями

JSON

  • Высокопроизводительный JSON-парсер
  • Сериализация данных в JSON
  • Потокобезопасные операции
  • Корректная обработка Unicode и суррогатных пар

Производительность и масштабируемость

  • Event-driven архитектура на epoll
  • Поддержка множества worker-потоков
  • Connection pool для баз данных
  • Горячая перезагрузка без остановки сервера
  • Zero-copy операции где возможно

Утилиты и структуры данных

  • str_t — динамические строки с SSO-оптимизацией
  • Array — динамические массивы
  • HashMap/Map — ассоциативные массивы
  • Система логирования с разными уровнями
  • Base64 кодирование/декодирование

Требования к ПО

  • Glibc 2.35 или выше
  • GCC 9.5.0 или выше
  • CMake 3.12.4 или выше
  • PCRE 8.43 (библиотека регулярных выражений)
  • Zlib 1.2.11 (библиотека сжатия данных)
  • OpenSSL 1.1.1k или выше
  • LibXml2 2.9.13

Опциональные зависимости

  • PostgreSQL — development-библиотеки (для поддержки PostgreSQL)
  • MySQL/MariaDB — development-библиотеки (для поддержки MySQL)
  • Redis — для сессий и кеширования

Области применения

Фреймворк подходит для разработки:

  • REST API — высокопроизводительные API для мобильных и веб-приложений
  • Real-time приложения — чаты, уведомления, live-обновления через WebSocket
  • Веб-сервисы — микросервисы и монолитные приложения
  • API Gateway — маршрутизация и проксирование запросов
  • Админ-панели — с аутентификацией, RBAC и CRUD-операциями
  • Сервисы загрузки файлов — с поддержкой локального и облачного хранилища
  • Email-сервисы — транзакционная отправка писем с DKIM

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