All projects

2025

Custom HTTP Server in C

A multi-threaded HTTP/1.1 server written in C with manual socket handling and request parsing.

CPOSIX Socketspthreads

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.