Введение
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