Github Pages Documentation: https://5cript.github.io/roar/
This is a network library that has:
- a HTTP(S) Server based on boost beast.
- a HTTP(S) Client based on boost beast.
- a CURL easy wrapper http client.
- Javascript Promise like syntax for asynchronous actions provided by xhawk18_promise.
-  HTTP Server
-  HTTPS Support (facillitated using boost::asio::ssl_context)
- Hybrid support, allow marked requests as unsecure.
 
- Routing (verb+path => handler)
- Custom error pages (404, ...)
- Provided pretty standard replies / error pages.
- Regex paths
-  Serving files (easier than using regex paths)
- Download
- Upload
- Deletion
-  Directory Listing
- List of files
- Styleable, pretty by default
- Last modified date
- File size
 
- Range Requests for GET.
- Resumeable Uploads?
 
 
-  HTTPS Support (facillitated using boost::asio::ssl_context)
-  Websocket
- Websocket Server Support (SSL and Plain)
- Websocket Client (SSL and Plain)
- Websocket Upgrade from HTTP(S) Server
 
- Synchronous HTTP Client using libcurl.
- Asynchronous HTTP Client using beast.
- URL Parser
- HTTP & HTTPS Tunnel Proxy
- boost 1.81.0 or higher
- openssl::ssl
- openssl::crypto
- cryptopp
 
- libcurl
Dependencies are expected to be installed via brew. If this does not work for you, please open an issue.
brew install ninja boost cryptopp curl llvm@16
Use vcpkg on windows for these dependencies when building with Visual Studio & cmake. https://vcpkg.io/en/getting-started.html
Example CMakeSettings.json
{
  "configurations": [
    {
      "name": "x64-Clang-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "buildRoot": "${projectDir}\\build\\${name}",
      "installRoot": "${projectDir}\\build\\install\\${name}",
      "buildCommandArgs": "",
      "ctestCommandArgs": "",
      "inheritEnvironments": [ "clang_cl_x64" ],
      "cmakeCommandArgs": "",
      "cmakeToolchain": "D:/vcpkg/scripts/buildsystems/vcpkg.cmake"
    }
  ]
}On msys2 use python (3) and python-pip of your subsystem, otherwise packages are not found