Build a high-performance C++ HTTP server that supports HTTP/2 and HTTP/3 using Facebook's production-tested infrastructure code.
Create a custom reverse proxy in C++ that handles thousands of concurrent connections with fine-grained control over request parsing and routing.
Use the httpserver building blocks to build a static file server or echo server quickly without writing low-level networking code.
Add HTTP/3 support to an existing C++ networking application by integrating Proxygen on top of the mvfst QUIC library.
| facebook/proxygen | ideawu/ssdb | brndnmtthws/conky | |
|---|---|---|---|
| Stars | 8,345 | 8,346 | 8,335 |
| Language | C++ | C++ | C++ |
| Setup difficulty | hard | hard | easy |
| Complexity | 4/5 | 3/5 | 2/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires at least 3 GB of RAM to compile, all dependencies are fetched and compiled from source via a build script.
Proxygen is a set of C++ libraries that Facebook built to handle HTTP traffic across its internal systems. It forms the foundation for many of Facebook's own HTTP servers, proxies, and clients. The project is open source so that other developers can use the same HTTP infrastructure code. The library supports several versions of the HTTP protocol: HTTP/1.1, HTTP/2, and HTTP/3. HTTP/3 is the newest version of the web's main communication protocol and relies on a transport mechanism called QUIC, which is designed to be faster and more reliable than older approaches. Proxygen's HTTP/3 support is built on top of another Facebook open-source project called mvfst. There are two main levels at which developers interact with the library. The lower level provides detailed control over how connections, requests, and responses are parsed and sent. The higher level, found in the httpserver directory, provides a simpler set of building blocks: a server object, a factory that creates a handler for each incoming request, and a handler class that developers fill in with their own logic. The higher level is the recommended starting point unless fine-grained control is needed. The repository includes several sample programs: an echo server, a server that supports HTTP/2 push, a static file server, a forward proxy, and a command-line HTTP/3 client. These samples show how to wire together the library's components for common use cases. Installation on Ubuntu and macOS is handled by a build script that fetches and compiles the dependencies. It can also be installed via the vcpkg package manager on supported platforms. The project requires at least 3 gigabytes of memory to compile.
Proxygen is Facebook's open-source C++ library for building high-performance HTTP/1.1, HTTP/2, and HTTP/3 servers, clients, and proxies, used to power HTTP infrastructure internally at Facebook.
Mainly C++. The stack also includes C++, HTTP/2, HTTP/3.
Setup difficulty is rated hard, with roughly 1day+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.