/Zia

Modular HTTP web server in C++, an Epitech school project.

Primary LanguageC++MIT LicenseMIT

Zia Test License

Introduction

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.

Installation

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.

License

See LICENSE.

Authors