Проект представляет собой легковесный высокопроизводительный веб-сервер, написанный на современном языке C++ (стандарт C++17). В качестве ядра используется микрофреймворк Crow, обеспечивающий многопоточную обработку входящих HTTP-запросов. Проект демонстрирует навыки проектирования REST API, работы с шаблонизаторами и разделения монолитной логики на независимые архитектурные модули.
- Многопоточность и асинхронность: Сервер настроен в режиме
.multithreaded(), что позволяет эффективно утилизировать ресурсы многоядерных процессоров при обработке конкурирующих запросов. - Модульность (Разделение ответственности): Бизнес-логика валидации пользователей и формирования ответов полностью изолирована от логики маршрутизации сетевых пакетов. Модуль
fn.ccвыполняет детерминированную обработку входных данных, что упрощает написание модульных тестов (Unit-тестирования). - Оптимизация работы с памятью: Передача строковых аргументов в функции валидации (
generateUserContext) реализована по константной ссылке (const std::string&), что исключает лишние операции аллокации памяти и копирования объектов при каждом сетевом запросе. - Динамическое представление (Шаблонизация): Рендеринг интерфейса разделен с бэкенд-логикой с помощью шаблонизатора Mustache. Данные передаются в виде структурированного контекста.
- Автоматизация сборки и развертывания: Файл конфигурации CMake управляет не только компиляцией бинарного файла, но и автоматизирует этап сборки ресурсов (Asset Pipeline), копируя веб-шаблоны в целевую директорию сборки с помощью кроссплатформенных команд
POST_BUILD.
CMakeLists.txt— Скрипт автоматизации сборки и линковки зависимостей.main.cc— Точка входа в приложение, инициализация веб-сервера и регистрация маршрутов.fn.h/fn.cc— Изолированный модуль бизнес-логики (проверка прав доступа, генерация контекста ответа).templates/— Каталог статических ресурсов и шаблонов Mustache (HTML-представления)..gitignore— Конфигурация для исключения артефактов компиляции и системных файлов метаданных macOS из системы контроля версий.
- Компилятор с полной поддержкой стандарта C++17 (Clang 13+ / GCC 9+).
- Инструментарий автоматизации сборки CMake версии 3.15 или выше.
- Установленная в системе библиотека Crow C++ Framework.
brew install crowcppСборка проекта осуществляется в изолированной директории для предотвращения загрязнения корневого каталога исходного кода временными файлами компилятора.
# Клонирование исходного кода проекта
git clone https://github.com
cd Net
# Создание директории сборки и генерация артефактов CMake
mkdir build && cd build
cmake ..
# Компиляция исполняемого файла
cmake --build .
# Запуск веб-сервера
./serverСервер разворачивается на локальном интерфейсе и слушает порт 18080. Маршрутизация построена на базе динамических путей:
GET /Admin— Эмуляция входа администратора системы. Возвращает контекст повышенного уровня доступа.GET /Banned— Пример обработки заблокированных учетных записей. Возвращает статус ошибки доступа.GET /<any_string>— Универсальный маршрут для авторизованных пользователей, генерирующий стандартное приветственное сообщение.