Nishant Raw HTTP Server.

low-level HTTP/1.1 parsing on raw TCP sockets with Bun, written to stay small, explicit, and easy to verify.

snippet
example
$bun run start
[Nishant Raw HTTP Server] listening on http://127.0.0.1:8080
$curl http://127.0.0.1:8080/health
{
"status": "ok",
"service": "Nishant Raw HTTP Server",
"owner": "https://github.com/codewithevilxd"
}

Raw TCP Control

Built directly on Bun.listen() so request parsing stays explicit instead of hiding behind a framework layer.

Incremental Parsing

Buffers incoming bytes, detects header termination, validates Content-Length, and only completes when the message is whole.

Strict Validation

Request line and header parsing reject malformed HTTP early, which keeps server behavior predictable and easier to reason about.

Focused Surface Area

A small route set, zero client-side data collection, and no unnecessary third-party scripts keep the site and project easy to trust.

Documentation

The website now has a dedicated documentation page that explains the server in engineering terms instead of vague product copy.

Server architecture

The TCP server keeps state per connection, accumulates bytes conservatively, and only routes a request after a complete HTTP frame is present.

Parser behavior

The parser is strict on purpose: it waits for CRLF CRLF, validates the request line, normalizes headers, and refuses to guess when the body is incomplete.

Application routes

The route layer stays deliberately small so the project can prove its transport and parsing behavior without hiding behind application complexity.

Verification workflow

This project is small enough that verification should be routine. Tests, typecheck, and live smoke requests together give a clear signal about transport, parser, and route health.

Read full documentation
usage
commands