All Projects → BlueBrain → Rockets

BlueBrain / Rockets

Licence: LGPL-3.0 license
REST and websockets C++ library

Programming Languages

C++
36643 projects - #6 most used programming language
typescript
32286 projects
python
139335 projects - #7 most used programming language
CMake
9771 projects
Makefile
30231 projects
javascript
184084 projects - #8 most used programming language
shell
77523 projects

Projects that are alternatives of or similar to Rockets

Websockets
Library for building WebSocket servers and clients in Python
Stars: ✭ 3,724 (+9448.72%)
Mutual labels:  websocket-server, websocket-client, websocket-library
Stl.fusion
Get real-time UI updates in Blazor apps and 10-1000x faster API responses with a novel approach to distributed reactive computing. Fusion brings computed observables and automatic dependency tracking from Knockout.js/MobX/Vue to the next level by enabling a single dependency graph span multiple servers and clients, including Blazor apps running in browser.
Stars: ✭ 858 (+2100%)
Mutual labels:  websocket-server, websocket-client
Awesome Websockets
A curated list of Websocket libraries and resources.
Stars: ✭ 850 (+2079.49%)
Mutual labels:  websocket-server, websocket-client
Deno Websocket
🦕 A simple WebSocket library like ws of node.js library for deno
Stars: ✭ 74 (+89.74%)
Mutual labels:  websocket-server, websocket-client
Ulfius
Web Framework to build REST APIs, Webservices or any HTTP endpoint in C language. Can stream large amount of data, integrate JSON data with Jansson, and create websocket services
Stars: ✭ 666 (+1607.69%)
Mutual labels:  websocket-server, websocket-client
Sylar
C++高性能分布式服务器框架,webserver,websocket server,自定义tcp_server(包含日志模块,配置模块,线程模块,协程模块,协程调度模块,io协程调度模块,hook模块,socket模块,bytearray序列化,http模块,TcpServer模块,Websocket模块,Https模块等, Smtp邮件模块, MySQL, SQLite3, ORM,Redis,Zookeeper)
Stars: ✭ 895 (+2194.87%)
Mutual labels:  websocket-server, websocket-client
Websocket
A PHP implementation of WebSocket.
Stars: ✭ 54 (+38.46%)
Mutual labels:  websocket-server, websocket-client
Ws
Simple to use, blazing fast and thoroughly tested WebSocket client and server for Node.js
Stars: ✭ 17,419 (+44564.1%)
Mutual labels:  websocket-server, websocket-client
Arduinowebsockets
arduinoWebSockets
Stars: ✭ 1,265 (+3143.59%)
Mutual labels:  websocket-server, websocket-client
Php Wss
Web-socket server/client with multi-process and parse templates support on server and send/receive options on client
Stars: ✭ 117 (+200%)
Mutual labels:  websocket-server, websocket-client
Embedded Jetty Websocket Examples
Embedded Jetty WebSocket Examples
Stars: ✭ 159 (+307.69%)
Mutual labels:  websocket-server, websocket-client
Autobahn Testsuite
Autobahn WebSocket protocol testsuite
Stars: ✭ 603 (+1446.15%)
Mutual labels:  websocket-server, websocket-client
Websocket
The Hoa\Websocket library.
Stars: ✭ 421 (+979.49%)
Mutual labels:  websocket-server, websocket-client
Oatpp Websocket
oatpp-websocket submodule.
Stars: ✭ 26 (-33.33%)
Mutual labels:  websocket-server, websocket-client
Ixwebsocket
websocket and http client and server library, coming with ws, a command line swiss army knife utility
Stars: ✭ 204 (+423.08%)
Mutual labels:  websocket-server, websocket-client
Jiny
Lightweight, modern, simple JVM web framework for rapid development in the API era
Stars: ✭ 40 (+2.56%)
Mutual labels:  websocket-server, websocket-client
LazWebsockets
Websocket Server and Client Library written in Lazarus
Stars: ✭ 51 (+30.77%)
Mutual labels:  websocket-server, websocket-client
Beast
HTTP and WebSocket built on Boost.Asio in C++11
Stars: ✭ 3,241 (+8210.26%)
Mutual labels:  websocket-server, websocket-client
Sketchpad
Sketchpad is fully customisable collaborative whiteboard plugin written in pure JavaScript.
Stars: ✭ 85 (+117.95%)
Mutual labels:  websocket-server, websocket-client
Libhv
🔥 比libevent、libuv更易用的国产网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket client/server.
Stars: ✭ 3,355 (+8502.56%)
Mutual labels:  websocket-server, websocket-client

Rockets

A library for easy HTTP and websockets messaging in C++ applications.

Travis CI Language grade: C/C++

Table of Contents

Features

Rockets provides the following features:

Build

Rockets is a cross-platform library designed to run on any modern operating system, including all Unix variants. It requires a C++11 compiler and uses CMake to create a platform specific build environment. The following platforms and build environments are tested:

  • Linux: Ubuntu 16.04, 18.04
  • Mac OS X: 10.9 - 10.14

Rockets requires the following external, pre-installed dependencies:

Building from source is as simple as:

git clone --recursive https://github.com/BlueBrain/Rockets.git
mkdir Rockets/build
cd Rockets/build
cmake -GNinja ..
ninja

Usage

Hello world REST server

#include <rockets/server.h>
#include <iostream>

int main(int , char** )
{
    rockets::Server server;
    std::cout << "Rockets REST server running on " << server.getURI() << std::endl;

    server.handle(rockets::http::Method::GET, "hello", [](auto) {
        return rockets::http::make_ready_response(rockets::http::Code::OK, "world");
    });
    for(;;)
        server.process(100);
    return 0;
}

Hello world websockets server

#include <rockets/server.h>
#include <iostream>

int main(int , char** )
{
    rockets::Server server("", "myws");
    std::cout << "Rockets websockets server running on " << server.getURI() << std::endl;

    server.handleText([](const auto& request) {
        return "server echo: " + request.message;
    });
    for(;;)
        server.process(100);
    return 0;
}

Production REST server example

For a more elaborate use of a Rockets REST server, check out the RestServer of Tide.

Production websockets server example

For a more elaborate use of a Rockets websockets server, check out the RocketsPlugin of Brayns.

Contribute

Follow the next guidelines when making a contribution:

  • Install our pre-commit hooks with pre-commit install prior the first commit
  • Use Conventional Commits spec whenever making a commit
  • Keep PRs to a single feature or fix

Funding & Acknowledgment

The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.

Copyright (c) 2021 Blue Brain Project/EPFL

License

Rockets is licensed under the LGPL version 3, unless noted otherwise, e.g., for external dependencies. See file LICENSE.txt for the full license. External dependencies are either LGPL or BSD-licensed. See file ACKNOWLEDGEMENTS.txt and AUTHORS.txt for further details.

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License version 3 as published by the Free Software Foundation.

This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].