A C++17 header-only library for building embedded HTTP/WebSocket servers with async request handling and Express-like routing.
RESTinio is a C++17 library that provides an embedded HTTP/WebSocket server for building REST APIs and network services directly within C++ applications. It solves the problem of needing a performant, asynchronous HTTP server implementation without relying on external runtime environments or complex dependencies, offering header-only convenience with production-ready stability.
C++ developers building network services, REST APIs, or real-time applications that require embedded HTTP/WebSocket server capabilities, particularly those prioritizing performance and low-level control in resource-constrained or high-throughput scenarios.
Developers choose RESTinio for its combination of C++ performance, async-first design, and ease of integration as a header-only library, providing Express-like routing and WebSocket support without sacrificing the efficiency expected from native code.
Cross-platform, efficient, customizable, and robust asynchronous HTTP(S)/WebSocket server C++ library with the right balance between performance and ease of use
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables non-blocking request handling by storing request handles and responding later when data is ready, as highlighted in the async request handling feature.
Provides flexible URL pattern matching and parameter extraction similar to Express.js, with examples in the enhanced router example using express_router_t.
Supports HTTP pipelining to dramatically increase server throughput and timeout control for managing stale connections, both emphasized in the features list.
RESTinio itself is header-only, making it easy to embed into C++ projects without linking against pre-built libraries, though it depends on non-header-only llhttp.
Offers basic WebSocket support for real-time communication and TLS for secure HTTPS connections, as mentioned in the features for production deployments.
Depends on nodejs/llhttp which is not header-only, complicating build systems and adding external linkage requirements, as noted in the README.
The README explicitly states 'basic websocket support,' which may lack advanced features like subprotocols or complex frame handling for sophisticated real-time apps.
Requires C++17, restricting use in legacy systems or projects with older compiler toolchains that cannot upgrade.
Full documentation is hosted externally on stiffstream.com, which might be less accessible, less integrated, or prone to link rot compared to inline or GitHub-hosted docs.