You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
`simple_http` is a lightweight, high-performance, asynchronous HTTP/1.1 & HTTP/2 server and client library for C++20, built upon Boost.Asio and nghttp2. It is designed as header-only for easy integration and use.
-**Header-only**: Easy to integrate into any project by just including headers.
12
-
-**Modern C++**: Leverages C++20/23/26 and coroutines for clean, asynchronous logic.
13
-
-**Dual Protocol Support**: Supports both HTTP/1.1 and HTTP/2 with automatic negotiation.
14
-
-**Server & Client**: Provides a consistent API for both server and client functionalities.
15
-
-**Secure Communication**: Supports HTTPS and TLS mutual authentication (mTLS).
16
-
-**Highly Configurable**: Easily configure server worker threads, concurrent stream limits, window sizes, and more.
17
-
-**Middleware Support**: Offers a `setBefore` interface for middleware-style request pre-processing.
18
-
-**IPv4 & IPv6**: Full dual-stack support.
19
-
-**UNIX Domain Sockets**: High-performance local IPC with zero network overhead.
10
+
`simple_http` is a lightweight, asynchronous HTTP/1.1 & HTTP/2 framework for C++20/23/26. Built upon **Boost.Beast** and **nghttp2**, it leverages modern C++ coroutines to provide a clean, high-performance API for both servers and clients.
-**xmake**: Used for building examples and dependency management.
25
-
-**Boost** (`beast`)
26
-
-**nghttp2**
27
-
-**OpenSSL**
14
+
## 📖 Table of Contents
15
+
-[✨ Features](#-features)
16
+
-[🚀 Quick Start](#-quick-start)
17
+
-[📦 Requirements](#-requirements)
18
+
-[🧪 C++20 Modules Support (Experimental)](#-c20-modules-support-experimental)
19
+
-[🛠 Configuration Macros](#-configuration-macros)
20
+
-[📊 Performance](#-performance)
21
+
-[🧪 Testing Guide](#-testing-guide)
22
+
-[🤝 Contributing](#-contributing)
28
23
29
-
> **Note**: When building with `xmake`, it automatically downloads and links all necessary dependencies, so you don't need to install them manually.
24
+
---
30
25
31
-
## 📦 C++20 Modules Support (Experimental)
26
+
## ✨ Features
32
27
33
-
`simple_http` provides experimental support for C++20 Modules via `include/simple_http.cppm`. This allows for faster compilation and better code isolation compared to traditional header inclusions.
28
+
-**📦 Header-only**: Simple to integrate; just include and go.
29
+
-**🛡️ Modern C++**: Built with C++20/23/26 coroutines for intuitive async logic.
30
+
-**🔄 Dual Protocol**: Seamless HTTP/1.1 & HTTP/2 support with ALPN negotiation.
31
+
-**🔄 Server & Client**: Symmetrical API design for both roles.
32
+
-**🔒 Secure**: Robust HTTPS and mTLS (Mutual TLS) support.
33
+
-**🔌 Advanced Transport**: Supports **IPv4/IPv6** and **UNIX Domain Sockets** for high-speed local IPC.
34
+
-**🧩 Middleware**: Flexible `setBefore` interceptors for pre-processing.
35
+
-**🌊 Full Streaming**: Bi-directional streaming for client and server.
-`SIMPLE_HTTP_USE_BOOST_REGEX`: Uses `boost::regex` instead of `std::regex` for header parsing and routing. This can provide better performance and compatibility in certain environments.
83
-
-`SIMPLE_HTTP_BIND_UNIX_SOCKET`: Enables support for binding the server to UNIX Domain Sockets (UDS) for high-performance local IPC.
0 commit comments