What is RESTinio?

RESTinio is a header-only C++14 library that gives you an embedded HTTP server with nice express-like routing (although it is not mandatory to use router) and websockets on board. It is targeted primarily for asynchronous processing of HTTP-requests.

What distinguishes RESTinio?

Easy to use.
From the ground up it was the mandatory property to keep things clear. We are very intolerant to the things, causing user turn to boilerplate approaches. With RESTinio you can concentrate on your application and not on the library details.
Express-like router.
Wonder how to build a complex REST API with lots of endpoints and parameters within them? Just use RESTinio express-like router. It is inspired with idea of a router from a well-known js-framework.
Performance and scalability.
RESTinio puts a little overhead on handling requests and gives you several tuning options to boost the performance. It is fully async and is ready to handle a many simultaneous connections connections.
Customizable.
RESTinio has lots of parameters to tune its behaviour. Want to trace internals with you tools or may be you Want to deal with timeouts by yourself? RESTinio has template customization points making it possible.
Open-source.
RESTinio is distributed under BSD-3-CLAUSE license and gives you all the benefits of open source projects.

How RESTinio-based code looks like?

The simplest HTTP-server that answers "Hello, World!" to the all requests:

#include <restinio/all.hpp>

int main()
{
   restinio::run(
      restinio::on_this_thread()
         .port(8080)
         .address("localhost")
         .request_handler([](auto req) {
            return req->create_response().set_body("Hello, World!").done();
         }));

   return 0;
}

How to get RESTinio?

RESTinio is hosted on bitbucket (github mirror).

Archive is available in download section.

Documentation with helpful information is here.