All Projects → eidheim → Simple Web Server

eidheim / Simple Web Server

Licence: mit
A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Boost.Asio. Created to be an easy way to make REST resources available from C++ applications.

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
HTML
75241 projects

Projects that are alternatives of or similar to Simple Web Server

Restinio
Cross-platform, efficient, customizable, and robust asynchronous HTTP/WebSocket server C++14 library with the right balance between performance and ease of use
Stars: ✭ 694 (-69.31%)
Mutual labels:  rest, library, asio, https
Simple Websocket Server
A very simple, fast, multithreaded, platform independent WebSocket (WS) and WebSocket Secure (WSS) server and client library implemented using C++11, Boost.Asio and OpenSSL. Created to be an easy way to make WebSocket endpoints in C++.
Stars: ✭ 685 (-69.7%)
Mutual labels:  library, server, asio, client
Beasthttp
Provides helper tools for creating RESTful services using Boost.Beast
Stars: ✭ 227 (-89.96%)
Mutual labels:  server, asio, https
Simplenetwork
simple TCP server / client C++ linux socket
Stars: ✭ 225 (-90.05%)
Mutual labels:  library, server, client
Purest
REST API Client Library
Stars: ✭ 448 (-80.19%)
Mutual labels:  rest, https, client
Httpkit
⚡️ High-level, High-performance HTTP(S) Clients/Servers in Reason/OCaml
Stars: ✭ 198 (-91.24%)
Mutual labels:  server, https, client
Pode
Pode is a Cross-Platform PowerShell web framework for creating REST APIs, Web Sites, and TCP/SMTP servers
Stars: ✭ 329 (-85.45%)
Mutual labels:  rest, server, https
Pysnow
Python library for the ServiceNow REST API
Stars: ✭ 162 (-92.84%)
Mutual labels:  rest, library, client
Curl
A command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, GOPHER, GOPHERS, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, MQTT, POP3, POP3S, RTMP, RTMPS, RTSP, SCP, SFTP, SMB, SMBS, SMTP, SMTPS, TELNET and TFTP. libcurl offers a myriad of powerful features
Stars: ✭ 22,875 (+911.72%)
Mutual labels:  library, https, client
Zinc
Zinc HTTP Components is an open-source Smalltalk framework to deal with the HTTP networking protocol.
Stars: ✭ 60 (-97.35%)
Mutual labels:  server, https, client
Ts3admin.class
The ts3admin.class is a powerful api for communication with Teamspeak 3 Servers from your website! Your creativity knows no bounds!
Stars: ✭ 103 (-95.44%)
Mutual labels:  library, server, client
Cocsharp
Clash of Clans library, proxy and server written in .NET [Unmaintained]
Stars: ✭ 94 (-95.84%)
Mutual labels:  library, server, client
Watsonwebserver
Watson is the fastest, easiest way to build scalable RESTful web servers and services in C#.
Stars: ✭ 125 (-94.47%)
Mutual labels:  rest, server, https
Ether.network
https://github.com/Eastrall/Sylver
Stars: ✭ 147 (-93.5%)
Mutual labels:  server, client
Smoke
💨 Simple yet powerful file-based mock server with recording abilities
Stars: ✭ 142 (-93.72%)
Mutual labels:  rest, server
Crossbar
Crossbar.io - WAMP application router
Stars: ✭ 1,957 (-13.45%)
Mutual labels:  rest, server
Deeply
PHP client for the DeepL.com translation API (unofficial)
Stars: ✭ 152 (-93.28%)
Mutual labels:  library, client
Pipedrive
Complete Pipedrive API client for PHP
Stars: ✭ 138 (-93.9%)
Mutual labels:  library, client
Rolisteam
Rolisteam is a virtual tabletop. It helps you to manage tabletop role playing games with remote friends/players. It provides many features to share maps, pictures, dice roller, manage background music and much more. The main git repository is available here: [https://invent.kde.org/kde/rolisteam].
Stars: ✭ 151 (-93.32%)
Mutual labels:  server, client
Titiler
A dynamic Web Map tile server
Stars: ✭ 153 (-93.23%)
Mutual labels:  rest, server

This project has moved to https://gitlab.com/eidheim/Simple-Web-Server.

Simple-Web-Server

A very simple, fast, multithreaded, platform independent HTTP and HTTPS server and client library implemented using C++11 and Asio (both Boost.Asio and standalone Asio can be used). Created to be an easy way to make REST resources available from C++ applications.

See https://gitlab.com/eidheim/Simple-WebSocket-Server for an easy way to make WebSocket/WebSocket Secure endpoints in C++. Also, feel free to check out the new C++ IDE supporting C++11/14/17: https://gitlab.com/cppit/jucipp.

Features

  • Asynchronous request handling
  • Thread pool if needed
  • Platform independent
  • HTTPS support
  • HTTP persistent connection (for HTTP/1.1)
  • Client supports chunked transfer encoding
  • Timeouts, if any of Server::timeout_request and Server::timeout_content are >0 (default: Server::timeout_request=5 seconds, and Server::timeout_content=300 seconds)
  • Simple way to add REST resources using regex for path, and anonymous functions

Usage

See http_examples.cpp or https_examples.cpp for example usage.

See particularly the JSON-POST (using Boost.PropertyTree) and the GET /match/[number] examples, which are most relevant.

Dependencies

  • Boost.Asio or standalone Asio
  • Boost is required to compile the examples
  • For HTTPS: OpenSSL libraries

Compile and run

Compile with a C++11 compliant compiler:

mkdir build
cd build
cmake ..
make
cd ..

HTTP

Run the server and client examples: ./build/http_examples

Direct your favorite browser to for instance http://localhost:8080/

HTTPS

Before running the server, an RSA private key (server.key) and an SSL certificate (server.crt) must be created. Follow, for instance, the instructions given here (for a self-signed certificate): http://www.akadia.com/services/ssh_test_certificate.html

Run the server and client examples: ./build/https_examples

Direct your favorite browser to for instance https://localhost:8080/

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