A high-performance, multithreaded HTTP server implementation in C++17 designed to demonstrate system programming concepts, low-level socket management, and modern C++ architectural patterns.
Coursework Project > Author: Stanislav Utkin
Group: ZKS-21
- High Performance: Implements a custom Thread Pool pattern to handle concurrent connections efficiently without the overhead of creating a new thread per request.
- Architecture: Clean separation of concerns using OOP principles (Facade, Singleton).
- Memory Safety: Full adherence to RAII idiom using Smart Pointers (
std::unique_ptr), ensuring zero memory leaks. - Interactive CLI: A separate UI thread allows controlling the server (checking status, stopping gracefully) in real-time.
- Configuration: Custom
.conffile parser for flexible server settings. - Logging: Thread-safe logging system (Console & File) with timestamps.
- Dockerized: Ready for deployment using Docker and Docker Compose (Multistage build).
- Tested: Unit tests implemented with Google Test.
- Language: C++17
- Build System: CMake (3.15+)
- Containerization: Docker
- Testing: Google Test (GTest)
- Networking: POSIX Sockets (sys/socket.h)
.
βββ src/ # Source files (.cpp)
β βββ main.cpp # Entry point & CLI loop
β βββ HttpServer.cpp # Network logic (Facade)
β βββ ThreadPool.cpp # Multithreading logic
β βββ Logger.cpp # Thread-safe logger
β βββ ...
βββ include/ # Header files (.h)
βββ config/ # Configuration files
βββ tests/ # Unit tests (Google Test)
βββ Dockerfile # Multi-stage build definition
βββ docker-compose.yml # Container orchestration
βββ CMakeLists.txt # Build configuration