Zia is an Epitech school project. The main objective is to create an HTTP web server in C++. All specific features has to be implemented in a separate module. This way, we can select which feature to enable by placing the module library in the modules folder.
We has to implement a common API to permits to use the modules of another group in our server implementation.
Implemented modules:
- Authorization: manage HTTP basic auth
- CGI: manage binaries which create HTTP responses
- Error: create generic error pages
- Head: manage HEAD HTTP method
- Headers: parse HTTP headers, query params and body
- HTTP: manage HTTP requests and responses
- LS: show a file browser when the requested resource is a folder
- Raw: returns the requested file as raw if none of the modules proceeded the request
- SSL: manage HTTPS requests and responses
We don't plan to continue this project, we just published it as part of our portfolios.
We use Conan as a dependency manager and CMake to build our project.
$ mkdir build
$ cd build
$ conan install ..
$ cmake ..
$ make
You have to create the config
and modules
folders in the same path as
the binary. Place the libraries in the modules
folder. You can find our
configurations files here.
See LICENSE.