Restbed

February 22, 2026 · View on GitHub


Restbed is a robust, enterprise-class framework for building server-side applications that demand secure, reliable, and scalable HTTP communication. It provides a flexible foundation for modeling complex business processes and is engineered to support deployment across mobile, tablet, desktop, and embedded environments.

It's akin to embedding NGINX into your companies own product line. -- Solutions Architect, Bellrock Technology

Features

FeatureDescription
WebSocketsFull-duplex communication channels over a single TCP connection.
Server-Sent EventsServer-Sent Events enables efficient server-to-client streaming of text-based event data—e.g., real-time notifications or updates generated on the server.
CometLong polling model to allow long-held HTTP requests for pushing data from the server to client.
SSL/TLSSecure over the wire communication allowing you to transmit private data online.
HTTP PipeliningA technique allowing multiple HTTP requests to be sent on a single TCP connection without waiting for the corresponding responses.
Path ParametersAnnotate URIs with custom path parameters such as resource keys, revisions, etc...
Query ParametersAutomated query parameter parsing.
LoggingCustomise how and where log entries are created.
Multi-Path ResourcesGive a resource multiple paths for improved readability.
Customisable MethodsAdd your own custom HTTP methods.
CompressionAdaptability to address any form of compression GZip, Deflate, etc...
EncodingAdaptability to address any form of encoding UTF-32, ASCII, etc...
IPv4/IPv6Internet Protocol Version 4/6 Network Support.
ArchitectureAsynchronous single or multi-threaded architecture, capable of addressing the C10K problem.
ConvertersBuilt-in Path, Query, and Header conversions for primary data-types.
AuthenticationSeparate Service and/or Resource level authentication.
Error HandlingSeparate Service and/or Resource level error handling.
Address BindingBind HTTP and/or HTTPS services to separate IP addresses.
Signal HandlingCapture OS generated process signals.
DocumentationHigh-quality documentation covering the architecture and API.
ComplianceFlexibility to address HTTP 1.0/1.1+ compliance.
MatureSecure, Stable, and extensively tested since 2013.
CommunityActive, vibrant and energetic open source community.
SupportCommercial support is available from Corvusoft.

Example

#include <memory>
#include <cstdlib>
#include <restbed>

using namespace std;
using namespace restbed;

void post_method_handler( const shared_ptr< Session > session )
{
    const auto request = session->get_request( );

    int content_length = request->get_header( "Content-Length", 0 );

    session->fetch( content_length, [ ]( const shared_ptr< Session > session, const Bytes & body )
    {
        fprintf( stdout, "%.*s\n", ( int ) body.size( ), body.data( ) );
        session->close( OK, "Hello, World!", { { "Content-Length", "13" } } );
    } );
}

int main( const int, const char** )
{
    auto resource = make_shared< Resource >( );
    resource->set_path( "/resource" );
    resource->set_method_handler( "POST", post_method_handler );

    auto settings = make_shared< Settings >( );
    settings->set_port( 1984 );
    settings->set_default_header( "Connection", "close" );

    Service service;
    service.publish( resource );
    service.start( settings );

    return EXIT_SUCCESS;
}

More in-depth examples can be found in the documentation.

License

© 2013-2026 Corvusoft Limited, United Kingdom. All rights reserved.

The Restbed framework is dual licensed; See LICENSE for full details.

Support

Please contact sales@corvusoft.com, for support and licensing options including bespoke software development, testing, design consultation, training, mentoring and code review.

Please submit all enhancements, proposals, and defects via the issue tracker; Alternatively ask a question on StackOverflow tagged #restbed.

Prerequisites

Catch2 is a modern, C++-native, test framework for unit-tests, TDD, BDD, and benchmarks.

git clone https://github.com/catchorg/Catch2.git
cd Catch2
mkdir build
cd build
cmake ..
make install

Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.

git clone https://github.com/chriskohlhoff/asio
cd asio/asio
./autogen.sh
./configure
make install

OpenSSL is a robust, commercial-grade, full-featured Open Source Toolkit for the TLS (formerly SSL), DTLS and QUIC protocols.

git clone https://github.com/openssl/openssl.git
cd openssl
./config
make install

Build

git clone https://github.com/corvusoft/restbed.git
cd restbed
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
make install
make test

You will now find all required components installed in the distribution sub-folder.

Build Options

OptionDescriptionDefault
BUILD_SSLEnable SSL/TLS support.Enabled
BUILD_IPCEnable Unix domain sockets.Disabled
BUILD_TESTSBuild project test suites.Enabled
BUILD_DEVEL_PACKAGEInstall headers into CMAKE_INSTALL_PREFIX.Enabled
BUILD_SHARED_LIBRARYProduce a shared build of restbed.Enabled
BUILD_STATIC_LIBRARYProduce a static build of restbed.Enabled

Windows Build Instructions

Prerequisites: Visual Studio >= 2022, CMake, GIT.

Using the x64 Native Tools Command Prompt proceed with the following build instructions.

git clone --recursive https://github.com/corvusoft/restbed.git

cd restbed
vcpkg install

mkdir build
cd build

cmake -G "Visual Studio 18 2026" [-DBUILD_SSL=NO] [-DBUILD_TESTS=NO] ..
cmake --build . --target ALL_BUILD --config Release
ctest

If you selected to use the static OpenSSL build (no-shared), you'll need to include additional dependencies when linking your application code; See OpenSSL project for futher details.

target_link_libraries( my_microservice restbed-static.lib ws2_32.lib advapi32.lib crypt32.lib gdi32.lib user32.lib )

For Microsoft Visual Studio 14 2015 instructions, and further details, please see feature #17.

Documentation

This codebase is intended to be as self documenting as possible. We have supplied many examples and test suites to help aid developers.

You can locate the latest design and API documentation here.

Minimum Requirements

ResourceRequirement
CompilerC++23 compliant or above
OSBSD, Linux, Mac OSX, Windows

Contact

MethodDescription
support@corvusoft.comSupport related queries.
sales@corvusoft.comSale related queries.