Skip to content

because reinventing the wheel is an option

Notifications You must be signed in to change notification settings

MaroIsLife/WebServer

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

WebServer

because reinventing the wheel is an option

Features:

  • HTTP 1.1 compliant
  • Never block and client can be bounced properly
  • Non-blocking I/O operations
  • Listen to multiple IPs
  • Listen to multiple ports
  • Methods: GET, POST, DELETE
  • Able to upload files
  • Able to serve a fully static website.
  • Supports multiple CGIs.
  • Custom error pages
  • High availablity
  • Resilient! Server never dies 🙂
  • poll() as the default event monitor

Usage:

$ make -C server/
$ ./webserver server/webserver.conf

Configue file setup:

server:
   host: 127.0.0.1
   port: 5050
   server_name: example.com
   location:
   	allowed_method: get delete post
   	path: "/route"
   	root: "/root"
   	index: index.html index.php ..
   	upload: "upload/path"
   	auto_index: on || off
   	cgi:
   		php: "path/to/php-cgi"
   		py: "path/to/python"
   		perl: "path/to/perl"
   	redirection:
   		status: redirection_code
   		url: 'url'
   error_page:
       status_code: custom_error_page.html

Authors:
Ayoub Maatouch
Marouane Ougnou
ElMehdi Mallah

Releases

No releases published

Packages

No packages published

Languages

  • C++ 92.8%
  • HTML 6.5%
  • Makefile 0.7%