All projects
Overview
LynxHTTP is a lightweight HTTP/1.1 server written in C without frameworks. It parses GET, POST, PUT, DELETE and PATCH requests, reads query parameters and serves static files, handling each connection on its own thread.
I built it to understand what web frameworks hide: sockets, request parsing, concurrency and manual memory management.
What I built
- Implemented a multi-threaded HTTP server with manual socket handling and request parsing.
- Designed a thread-per-connection model and custom route registration using constructor attributes.
- Demonstrated low-level networking, concurrency control and memory management fundamentals.
Design and architecture
- Concurrency: a thread-per-connection model using POSIX threads.
- Routing: custom route registration using constructor attributes, so handlers register themselves at startup.
- Structure: separate modules for HTTP handling, server logic and shared utilities, with a Makefile build.