Description
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.
See https://github.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://github.com/cppit/jucipp.
Simple-Web-Server alternatives and similar libraries
Based on the "Networking" category.
Alternatively, view Simple-Web-Server alternatives based on common mentions on social networks and blogs.
-
uWebSockets
µWS is one of the most lightweight, efficient & scalable WebSocket & HTTP server implementations available. [Zlib] -
POCO
C++ class libraries and frameworks for building network- and internet-based applications that run on desktop, server, mobile and embedded systems. [Boost] website -
libwebsockets
Libwebsockets is a lightweight pure C library built to use minimal CPU and memory resources, and provide fast throughput in both directions as client or server -
cpr
A modern C++ HTTP requests library with a simple but powerful interface. Modeled after the Python Requests module. [MIT] website -
boost.beast(new repo)
HTTP and WebSocket built on Boost.Asio in C++11 -
wdt
An embeddedable library (and command line tool) aiming to transfer data between 2 systems as fast as possible over multiple TCP paths. [BSD-3-Clause] -
PcapPlusPlus
multiplatform C++ network packet sniffing and crafting library -
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++. -
dotenv-linter
⚡️Lightning-fast linter for .env files. Written in Rust 🦀 -
nope.c
A C language-based ultra-light software platform for scalable server-side and networking applications. Think node.js for C programmers. [GPL2] -
libhttpserver
C++ library for creating an embedded Rest HTTP server (and more) -
NetIF
Header-only C++14 library for getting network addresses associated with network interface without name lookups on Windows, macOS, Linux, and FreeBSD -
sock_connect
Wrapper for linux TCP/UDP/unix/COM socket connections -
Pion Network Library
Pion Network Library (Boost licensed open source) -
libjingle
Google talk voice and P2P interoperability library. [BSD]
Get performance insights in less than 4 minutes
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest. Visit our partner's website for more details.
Do you think we are missing an alternative of Simple-Web-Server or a related project?
README
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/