Skip to content
HN On Hacker News ↗

GitHub - vermellcc/vermell: A minimal, zero-bloat web framework designed for modern C++ environments. Fast, structural, and strictly typed. (successor to Vibe.)

▲ 25 points 14 comments by standar-donkey 5d ago HN discussion ↗

Pangram verdict · v3.3

We believe that this text is a mix of AI and human-written content.

78 %

AI likelihood · overall

AI
12% human-written 88% AI-generated
SEGMENTS · HUMAN 1 of 2
SEGMENTS · AI 1 of 2
WORD COUNT 384
PEAK AI % 70% · §1
Analyzed
Sep 1
backend: pangram/v3.3
Segments scanned
2 windows
avg 192 words each
Distribution
12 / 88%
human / AI fraction
Verdict
AI
Pangram v3.3

Article text · 384 words · 2 segments analyzed

Human AI-generated
§1 AI · 70%

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). 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. Hardened by default — 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. C++ templates — compose() modules and render() variables. Fluent configuration — one configure({...}) call or chainable setters, readable at runtime. 📚 Full documentation: vermell.cc — bilingual (EN/ES) manual covering every section of this README with examples and diagrams.

§2 Human · 16%

Table of Contents Installation CMake npx Docker Quick Start Compile Routing & Handlers Lambda captures Server Configuration MIME Types & File Rendering Static Directories Templates: compose & render Render Security Process & Environment Examples Support Testing Contribution License Installation CMake $ git clone https://github.com/vermellcc/vermell.git $ cd Vermell $ cmake . $ cmake --build . $ make install npx Ready-to-use scaffold: $ npx create-vermell-static Docker $ docker pull vermellcc/vermell APT (Debian/Ubuntu) Packages for amd64, arm64 and armhf live on GitHub Pages, signed and ready to add: $ sudo install -d -m 0755 /etc/apt/keyrings $ curl -fsSL https://vermellcc.github.io/vermell/vermell-apt-key.asc | sudo gpg --dearmor --yes -o /etc/apt/keyrings/vermell.gpg $ echo "deb [signed-by=/etc/apt/keyrings/vermell.gpg] https://vermellcc.github.io/vermell stable main" | sudo tee /etc/apt/sources.list.d/vermell.list $ sudo apt-get update $ sudo apt-get install -y libvermell Key fingerprint: 022D 56AA 7A6B 2028 B005 3629 F616 54D8 8AD1 C323 Quick Start A Vermell server is a Router: register a handler for a route, choose a port, and call listen(). #include <vermell/vermell.h> int main() { Router router; router.setPort(8080); router.get("/", { [](Query &http) { http.send("Hello from Vermell"); }}); router.listen(); } The { ...