
PlusWeb
Build C++17 HTTP services with Express-style routing and middleware
Gallery
About PlusWeb
PlusWeb is an open-source HTTP framework that brings an Express-style application shape to modern C++17. It is built for developers who want familiar route and middleware concepts without putting Node.js between their code and the network. The framework exposes methods such as app.GET and app.use, supports mountable routers, and packages the result for CMake projects. Under that approachable surface, it uses a libuv event loop and the llhttp parser, so it is also a useful way to study how requests move from a socket through parsing, routing, middleware, and a final handler.
Routing is built around a segment trie keyed by HTTP method and path segments. Instead of scanning every registered route in order, PlusWeb follows the segments in the requested path, so lookup cost is tied to path depth rather than the total size of the route table. Literal paths take priority over parameters, which means a concrete route such as /users/new wins over a parameterized user route. This matters most as an application grows from a handful of endpoints into a large API, and it also makes matching rules easier to reason about than an opaque linear list.
The middleware model deliberately resembles Express. A middleware function can continue the chain with next(), stop processing early, or run only beneath a selected path. Routers can be mounted below prefixes, and PlusWeb rewrites the path seen by a nested router so that module does not need to know its final mount point. Those choices support organizing a service by domain while keeping authentication, logging, validation, and other cross-cutting work in composable layers. Developers coming from JavaScript will recognize the control flow, though they still need to work within C++ ownership, build, and debugging conventions.
At runtime, PlusWeb uses a single libuv event loop and keeps connections alive by default. The project's published comparison reports 4.8 times the throughput of Express on a small application, flat behavior from five to 10,000 routes, and no unanswered connections at the tested concurrency levels. Those are project benchmarks rather than an independent guarantee, so prospective users should repeat them with their compiler, hardware, middleware, and workload. The architectural point is still clear. The framework is designed to avoid route-table scans and to handle concurrent network work through an event loop.
The project is tested beyond isolated router functions. Its suite includes unit tests plus an integration setup that starts a live server and drives it over loopback. Continuous integration builds on Linux and macOS, verifies that the CMake install target works, and reruns the suite with AddressSanitizer and UndefinedBehaviorSanitizer, including leak detection. That testing posture is valuable for a low-level networking library, where a request that passes a happy-path example says little about memory handling, connection cleanup, or whether consumers can actually install the package. The install check also matters because PlusWeb is offered as a CMake package, not just source that only builds inside its own repository.
PlusWeb is best suited to C++ developers building HTTP services, embedded backends, experiments, or performance-sensitive APIs who appreciate a small and legible framework. It may also interest engineers learning the layer beneath a higher-level web stack. It is not yet a fully loaded production platform. The public roadmap says TLS, request body size limits, and idle timeouts are missing. Teams would need to account for those gaps in their surrounding infrastructure and security design, and should compare the young project with mature C++ server frameworks before making it foundational. The narrow scope can be helpful for learning, but it also leaves more operational policy to the application team.
The framework is free under the MIT license, with source and issue tracking available through its public repository. There is no hosted service, paid tier, or vendor-managed deployment. Adoption therefore means adding a C++17 library to a CMake build and taking responsibility for compilation, operations, and upgrades. The combination of familiar APIs, trie-based routing, libuv, llhttp, and unusually explicit testing makes PlusWeb an interesting open-source option, but its early stage and published protocol gaps make it better for evaluation and controlled projects than an unreviewed public edge service. Its strongest case is a team that already wants C++ and values the Express-shaped interface, not one seeking a managed backend or batteries-included application framework.
Key Features
- Express-style C++17 API
- Segment-trie HTTP routing
- Composable middleware chains
- Mountable nested routers
- Libuv event-loop concurrency
- CMake package installation
Pros & Cons
What we like
- Familiar route and middleware model for Express users
- Route lookup stays tied to path depth
- CI covers Linux, macOS, sanitizers, and installation
- MIT licensing allows broad project use
Room for improvement
- TLS support is not yet included
- Body size limits are still missing
- Idle timeouts are not yet implemented
- Young framework has a very small community
Frequently Asked Questions
What is PlusWeb?
Is PlusWeb free?
How is PlusWeb tested?
Is PlusWeb ready for a public production service?
Best For
Featured in
Alternatives to PlusWeb
Kevin Gabeci
Solo developer building web apps, cozy browser games, and AI creator toolkits.

SoloDevStack
A solo developer blog built on head-to-head tool comparisons, 580+ posts deep.

Codedex
A gamified, story-driven platform that teaches Python, web dev, and more like an RPG quest
Vibe Built
Building real apps with agentic AI. What worked, what broke, what shipped.
Reviews (0)
Badge builder
Add PlusWeb to your website
Choose a badge style and size, preview it here, then copy the generated HTML. Badge images are self-contained SVGs and do not require an external script.
<a href="https://toolindex.net/tools/plusweb?ref=badge" target="_blank" rel="noopener">
<img src="https://toolindex.net/badge/plusweb/medium.svg" alt="PlusWeb - Listed on Tool Index" width="180" height="50" />
</a> How to use the badge
- 1. Pick the style, size, and theme that fit your layout.
- 2. Copy the generated HTML from the code block.
- 3. Paste it into your footer, homepage, or press page.
Standard badge available
The standard listing badge is available now. Score and circle badges are limited to tools currently ranked in the top 10 of a category.
Badge clicks return visitors to this profile with a referral tag so the source remains identifiable.
Related Tools
Kevin Gabeci
Solo developer building web apps, cozy browser games, and AI creator toolkits.

Coolify
Self-hostable, open source alternative to Heroku and Netlify

Warp
The modern terminal reimagined with AI and collaboration

Bolt.new
Prompt-to-deployed full-stack app inside the browser
Work on PlusWeb? Request listing access or correction