Skip to content
Tech News
← Back to articles

Vermell – Minimal, dependency-free C++ web framework using epoll

read original more articles
Why This Matters

Vermell introduces a minimal, dependency-free C++ web framework that leverages Linux's native APIs for high performance and resilience. Its zero-bloat design and strict typing make it an appealing choice for developers seeking lightweight, fast, and secure web solutions in modern C++ environments, including embedded and containerized systems.

Key Takeaways

A minimal, zero-bloat web framework designed for modern C++ environments. Fast, structural, and strictly typed.

Vermell is a web framework for modern C++ environments: one header to include, one static library to link, and nothing else. No runtime, no garbage collector, no framework-specific DSL, no vendored dependencies — what you write is C++, and what runs is C++.

Under the hood it is an event-driven engine: a non-blocking epoll loop reads requests and hands work to a pool of worker threads. That split is what makes Vermell fast under load and resilient against slow clients.

Zero dependencies — only base Linux APIs (sockets, epoll, pthreads, fork/exec).

— only base Linux APIs (sockets, epoll, pthreads, fork/exec). One command to build — g++ -std=c++20 server.cpp -o exe -lvermell .

— . Any Linux with g++ — x86_64, ARM (aarch64, armv7), Android via Termux, WSL, Raspberry Pi, containers.

— x86_64, ARM (aarch64, armv7), Android via Termux, WSL, Raspberry Pi, containers. Hardened by default — timeouts, request caps, connection limits and a render jail are on out of the box.

— timeouts, request caps, connection limits and a render jail are on out of the box. In-tree JSON DOM — strict RFC 8259 parser and serializer, typed parameters, raw bodies, multipart uploads.

— strict RFC 8259 parser and serializer, typed parameters, raw bodies, multipart uploads. C++ templates — compose() modules and render() variables.

— modules and variables. Fluent configuration — one configure({...}) call or chainable setters, readable at runtime.

... continue reading