RESTinio is a header-only C++14 library that gives you an embedded HTTP/WebSocket server. It is based on the standalone version of ASIO and is targeted primarily for the asynchronous processing of HTTP requests. Since v.0.4.1 Boost::ASIO (1.66 or higher) is also supported. Consider the task of writing a C++ application that must support some REST API, RESTinio represents our solution for that task. Server runs on the main thread, and responds to all requests with a hello-world message. Of course, you've got access to the structure of a given HTTP request, so you can apply complex logic for handling requests. Async request handling. Cannot get the response data immediately? That's ok, store the request handle somewhere and/or pass it to another execution context and get back to it when the data is ready.
Features
- HTTP pipelining. Works well with async request handling
- It might increase your server throughput dramatically
- Timeout control. RESTinio can take care of bad connection that are like: send "GET /" and then just stuck
- Response builders. Need chunked-encoded body - then RESTinio has a special response builder for you (obviously it is not the only builder)
- ExpressJS-like request routing
- An experimental typesafe request router that allows avoiding problems of ExpressJS-like router with help of static checks from C++ compiler