1.8 KiB
1.8 KiB
Anthracite
A simple web server written in C++
Module-Based Backends
Anthracite includes a system for allowing different "backend modules" to handle requests. This allows for anthracite to be extended for additional use-cases. For example, the following backends could be implemented:
- File: Return files from a directory
- Reverse Proxy: Pass the request to another server
- Web Framework: Pass the request into an application built on your favorite web framework
Building & Debugging
Once you have the repository cloned, you can run the following command to build Anthracite:
make build
It will create a binary file named ./anthracite
To save time, you can use the following command to build and run anthracite on port 8080
:
make run
To save time again, you can use the following command to build and debug anthracite in gdb:
make debug
Usage
Run the following commands to serve all files located in ./www/
:
./anthracite [PORT_NUMBER]
Todo
- Serve HTML Pages
- Properly parse HTTP requests
- Add module-based backend system for handling requests
- Cleanup (this one will never truly be done)
- Proper error handling
- Flesh out module-based backend system for handling requests
- Fix glaring security issues
- Faster parsing
- Multithreading
- Speed optimizations such as keepint the most visited html pages in memory
- Cleanup codebase
- Enable cache support
- Support newer HTTP versions
Screenshots
"By industry, we thrive"