C++ developers often face a dilemma: use a massive framework that brings in a thousand dependencies (looking at you, Boost), or write everything from scratch using raw sockets.

There has to be a middle ground. Meet http-c.

Why we built it

We needed something lightweight, portable, and blazingly fast. We wanted a library that you can drop into your project and have a running HTTP server in minutes, not hours.

http-c is designed for:

  • Embedded Systems: Where every kilobyte of memory counts.
  • High-Throughput Services: Where latency is the enemy.
  • Game Servers: Where you need a control plane without the overhead.

Key Features

🚀 Zero Bloat

No external dependencies. No complex build systems. Just pure, optimized C++ code that does one thing and does it well.

🔒 Secure by Default

Built with security in mind, http-c includes robust path normalization to prevent directory traversal attacks and built-in Basic Authentication support.

🌐 Standards Compliant

Full HTTP/1.0 support (RFC 1945), including:

  • GET, HEAD, and POST methods
  • Conditional requests (If-Modified-Since)
  • Proper error handling and status codes

Simplicity in Action

Setting up a server shouldn’t require a PhD in template metaprogramming.

#include "http.h"

int main() {
    // Start the server on port 8080
    // Serve static files from the "public" directory
    http_server_init(8080, "./public");
    
    // The server is now running!
    // Requests to /index.html will serve ./public/index.html
    
    return 0;
}

Get It Now

http-c is open source and available today. Stop wrestling with dependencies and start building.

Ready to upgrade your networking stack?

View on GitHub