REST APIs using C++. (Is this even done much?)

This page summarizes the projects mentioned and recommended in the original post on /r/cpp

Our great sponsors
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • WorkOS - The modern identity platform for B2B SaaS
  • SaaSHub - Software Alternatives and Reviews
  • Crow

    A Fast and Easy to use microframework for the web. (by CrowCpp)

  • How about Crow?

  • DPP

    C++ Discord API Bot Library - D++ is Lightweight and scalable for small and huge bots!

  • Sure, the D++ Discord bot library is a good example of an implementation of REST in C++. I wouldn't say it's particularly modern as it doesn't make a lot of use of modern C++ features such as constexpr, string_view and so on, but it's not too bad.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • Pistache

    A high-performance REST toolkit written in C++

  • Oat++

    🌱Light and powerful C++ web framework for highly scalable and resource-efficient web application. It's zero-dependency and easy-portable.

  • Lots of other options have been mentioned, but I'll throw Oat++ into the mix. I used it for this purpose and it was reasonably painless.

  • cpp-httplib

    A C++ header-only HTTP/HTTPS server and client library

  • I use this all the time to expose an admin rest interface to my public installations.

  • restc-cpp

    Modern C++ REST Client library

  • Restc-cpp: Client library using asio stackfull coroutines. It also handles serialization to and from Json automatically if the C++ classes are declared with boost::fusion.

  • RESTinCurl

    Modern C++ header only library wrapper around libcurl

  • RESTinCurl: Wrapper over libcurl for projects not using boost/asio, typically for Android and IOS use-cases (but I have used it in servers as well). Besides wrapping the library, it also contains the code to handle asynchronous operations with libcurl.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • yahat-cpp

    Yet Another Http API Thing - A trivial HTTP server for simple REST API's in C++ projects

  • Yahat-cpp: Simple HTTP/API server library for use in C++ micro-services. This was just some code that kept evolving inside various projects, so I distilled it to a separate project to make it simpler to maintain. For an example of a real server using it, you cal look at nsblast, a new DNS server I'm implementing.

  • nsblast

    Massively scalable authorative DNS server

  • Yahat-cpp: Simple HTTP/API server library for use in C++ micro-services. This was just some code that kept evolving inside various projects, so I distilled it to a separate project to make it simpler to maintain. For an example of a real server using it, you cal look at nsblast, a new DNS server I'm implementing.

  • beauty

    Experimental general HTTP 1.1 and 2 server and client library using C++20. (by jgaa)

  • I've been planning/dreaming up a new project that contain both (high level) server and client code, offering asio continuations, and C++20 co-routine support (via asio and/or the new C++ network library that may arrive one day). The goal is to provide something that makes it simple to use HTTP/ REST and gRPC from C++, supporting HTTP 1.1 to 3.0. Personally I find boost.Beast hard to use correctly. Also, it lacks support for HTTP 2 and 3. The placeholder for this project is beauty ;)

  • C++ REST SDK

    The C++ REST SDK is a Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design. This project aims to help C++ developers connect to and interact with services.

  • CppRestSDK is deprecated.

  • lithium

    Easy to use C++17 HTTP Server with no compromise on performances. https://matt-42.github.io/lithium

  • You know what is curious? There is a lib with the same name of your user similar to httplib: https://matt-42.github.io/lithium/

  • userver

    Production-ready C++ Asynchronous Framework with rich functionality

  • I think userver (https://userver.tech/) is good way for you. 🐙 userver is the modern open source asynchronous framework with a rich set of abstractions for fast and comfortable creation of C++ microservices, services and utilities.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts