← 返回首页
GitHub - 5cript/roar: A Networking Library Wrapping Around ASIO, Beast and Curl · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

5cript/roar

 master
Go to file
Code

Repository files navigation

More items

ROAR

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.

Features and planed features

  • 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?
  • 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

Dependencies

  • boost 1.81.0 or higher
    • openssl::ssl
    • openssl::crypto
    • cryptopp
  • libcurl

MacOS

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

Windows

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" } ] }

Developer Notes

On msys2 use python (3) and python-pip of your subsystem, otherwise packages are not found

About

A Networking Library Wrapping Around ASIO, Beast and Curl

Topics

Resources

License

Stars

4 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Footer

© 2026 GitHub, Inc.