Giter Club home page Giter Club logo

restbed's Introduction

Restbed


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

Features

  • Long Polling
  • Web Sockets
  • Path Parameters
  • Query Parameters
  • Request filters
  • Custom Logging
  • Multi-path resources
  • Customisable HTTP methods
  • Compression GZip, Deflate, etc...
  • Asynchronous single threaded architecture
  • Built-in Path, Query, and Header conversions
  • Service & Resource level authentication
  • Service & Resource level error handling
  • Secure, Stable, and extensively tested over 3+ years
  • Flexibility to address HTTP 1.0/1.1+ compliance
  • Active, vibrant community

Example

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

using namespace std;
using namespace restbed;

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

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

    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( "GET", &get_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 here.

License

Copyright (c) 2013, 2014, 2015 Corvusoft Limited, United Kingdom. All rights reserved.

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

Support

Please contact [email protected], for support options including bespoke software development, design consultation, training, mentoring and code review.

Install Base Tickets Anual Fee Per Install (ex vat @20%)
1-3 3 £280.00
4-10 3 £360.00
11+ 3+ AABUS

purchase by contacting [email protected] for further information.

Are you a start-up? Contact [email protected] for discounts.

Build

git clone --recursive http://github.com/corvusoft/restbed.git
mkdir restbed/build
cd restbed/build
cmake [-DBUILD_TESTS=YES] [-DBUILD_EXAMPLES=YES] [-DCMAKE_INSTALL_PREFIX=/output-directory] ..
make install
make test

You will now find all required components installed in the restbed distribution folder. Please submit all enhancements, proposals, and defects via the issue tracker.

Minimum Requirements

Resource Requirement
CPU 40mhz
RAM 3mb
Disk 1mb
Compiler C++11 compliant or above
OS BSD, Linux, Mac OSX, Solaris, Windows, Raspbian

Road Map

Release Feature Status
0.0 Asynchrounous HTTP Service complete
1.0 HTTP 1.0 Compliance complete
2.0 HTTP 1.1 Compliance complete
2.5 Secure Socket Layer in-development
2.7 Event Hooks pending
2.8 Localisation pending
3.0 Session Management pending
3.5 Resource Caching pending
4.0 HTTP 2.0 compliance pending
4.x Dynamic runtime resource publishing/suppression pending
x.x Statically Linked Framework pending

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.