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

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

InfluxDB high-performance time series database
Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.
influxdata.com
featured
CodeRabbit: AI Code Reviews for Developers
Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.
coderabbit.ai
featured
  1. Crow

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

    How about Crow?

  2. InfluxDB

    InfluxDB high-performance time series database. Collect, organize, and act on massive volumes of high-resolution data to power real-time intelligent systems.

    InfluxDB logo
  3. 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.

  4. Pistache

    A high-performance REST toolkit written in C++

  5. 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.

  6. 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.

  7. 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.

  8. 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.

  9. CodeRabbit

    CodeRabbit: AI Code Reviews for Developers. Revolutionize your code reviews with AI. CodeRabbit offers PR summaries, code walkthroughs, 1-click suggestions, and AST-based analysis. Boost productivity and code quality across all major languages with each PR.

    CodeRabbit logo
  10. 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.

  11. 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.

  12. 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 ;)

  13. 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.

  14. lithium

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

    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/

  15. 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

  • cpprestsdk in maintenance mode

    17 projects | /r/cpp | 8 Jun 2021
  • Experience using crow as web server

    11 projects | /r/cpp | 6 Nov 2023
  • Can I use C++ in the backend ?? Any frameworks there ??

    4 projects | /r/cpp | 15 Jun 2022
  • What does modern (good) API development look like and what are the best tools to use?

    3 projects | /r/AskProgramming | 2 Sep 2021
  • How to use C++ as backend

    8 projects | /r/cpp_questions | 20 Apr 2021

Did you know that C++ is
the 7th most popular programming language
based on number of references?