- Joined
- Mar 14, 2023
- Messages
- 111,532
- Thread Author
- #1
httpjet is an experimental Linux web server written in Rust. It's been serving WindowsForum.com on
github.com/faratech/httpjet
Compatibility work came from public documentation, black-box testing, and reading GPL OpenLiteSpeed — no OpenLiteSpeed source is vendored. httpjet is independent of and not endorsed by LiteSpeed Technologies.
:80 and :443 behind Cloudflare for about two months — and as of this week the entire source is public under GPL-3.0. No paid edition. No license key. No "enterprise tier."Why it's fast: io_uring all the way down
Most web servers still talk to the kernel through epoll. httpjet doesn't have an epoll path anymore — we deleted it.- Pure io_uring transport. HTTP/1.1, HTTP/2 and HTTP/3 all ride a single io_uring runtime per listener. No fallback, no feature flag, no second code path.
- HTTP/3 and QUIC, driven over an io_uring UDP loop, with Alt-Svc advertisement.
- A from-scratch HTTP/2 stack — including our own zero-allocation HPACK codec. It replaces hyper's h2 entirely and passes h2spec 146/146.
- A full-page origin cache: sharded byte-LRU with W-TinyLFU admission, tag-based purge, single-flight miss collapse, and a tmpfs tier that survives restarts.
- Per-vhost zstd dictionaries that shrink cached pages 3.5–9× — and only spend the CPU after a page proves it actually gets reused.
- Native LSAPI to
lsphp(no FastCGI shim), a full Apache .htaccess / mod_rewrite engine, rustls TLS, and gzip/brotli/zstd compression.
The numbers
Two we're confident in — loopback microbenchmarks, not production throughput:- A cached page serves ≈40× faster than a full PHP render: p50 2 ms vs ~34 ms.
- On a real ~67 ms forum request, httpjet's own pipeline accounts for ~138 µs — rewrite 42 µs, cache lookup 3 µs, compression 93 µs. Roughly 99% of the time is PHP. The web server is not your bottleneck.
Battle-tested on this forum
We didn't write this in a lab. It has been carrying real traffic — yours:- ~2 months in production on WindowsForum; LiteSpeed fully retired
- ~1.08M distinct URLs a day, ~86% of it unique traffic
- 11/11 parity in a live differential against the LiteSpeed install it replaced
- 834/834 workspace tests green, 146/146 h2spec
- One restart restored 334,243 cached pages straight off disk
101,720 lines, two months, then given away
466 commits between May 31 and July 28: its own HTTP/2 server, its own HPACK, its own LSAPI implementation, its own page cache. 15 crates, ~101,720 lines of Rust on 1.97 / edition 2024. Then GPL-3.0, DCO sign-off, and no proprietary-relicensing CLA.Compatibility work came from public documentation, black-box testing, and reading GPL OpenLiteSpeed — no OpenLiteSpeed source is vendored. httpjet is independent of and not endorsed by LiteSpeed Technologies.
Kick the tires
Honest framing: this is early-stage software built around one production configuration — ours. If you try it, run it on alternate ports first.- Source: GitHub - faratech/httpjet: GPL-3.0 Rust web server compatible with LiteSpeed XML and LSAPI · GitHub
- Project site: httpjet
- Documentation: httpjet — documentation