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.
bun install && bun run startRaw 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.
# Install dependenciesbun install # Start the TCP serverbun run start # Run testsbun run test # Typecheck the projectbun run typecheckstart:tcp Launch the raw TCP HTTP serverstart:udp Run the UDP listener helperinspect:asset Print the bundled text assettest Execute Bun unit teststypecheck Verify TypeScript types