PlusWeb

PlusWeb

Build C++17 HTTP services with Express-style routing and middleware

Open Source

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?
PlusWeb is an open-source C++17 HTTP framework built on libuv and llhttp. It offers Express-style routes, middleware, and mountable routers while using a segment trie to match request paths.
Is PlusWeb free?
Yes. PlusWeb is published under the MIT license, and the site lists no paid service or commercial tier. Users build and operate it within their own C++ projects.
How is PlusWeb tested?
The project has unit tests and an integration suite that starts a real server over loopback. Its CI builds on Linux and macOS, verifies installation, and runs with AddressSanitizer and UndefinedBehaviorSanitizer.
Is PlusWeb ready for a public production service?
It has a serious testing setup, but its own roadmap still lists missing TLS, request body size limits, and idle timeouts. Teams should account for those gaps and run their own security and load evaluation before production use.

Best For

Building a REST API in C++17Porting an Express-style service to C++Studying event-driven HTTP server internalsPrototyping a low-memory backend service

Featured in

Alternatives to PlusWeb

Reviews (0)

No reviews yet

Be the first to share your experience with PlusWeb

Sign in to write a review

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.

PlusWeb badge preview
<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. 1. Pick the style, size, and theme that fit your layout.
  2. 2. Copy the generated HTML from the code block.
  3. 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.