whatisgithub

What is proxygen?

facebook/proxygen — explained in plain English

Analysis updated 2026-06-24

8,345C++Audience · developerComplexity · 4/5Setup · hard

In one sentence

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.

Mindmap

mindmap
  root((repo))
    What it does
      HTTP server library
      HTTP client library
      Proxy support
    Protocols
      HTTP 1.1
      HTTP 2
      HTTP 3 via QUIC
    Usage Levels
      Low-level control
      High-level httpserver
    Sample Programs
      Echo server
      Static file server
      Forward proxy
    Installation
      Ubuntu build script
      macOS build script
      vcpkg package
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a high-performance C++ HTTP server that supports HTTP/2 and HTTP/3 using Facebook's production-tested infrastructure code.

USE CASE 2

Create a custom reverse proxy in C++ that handles thousands of concurrent connections with fine-grained control over request parsing and routing.

USE CASE 3

Use the httpserver building blocks to build a static file server or echo server quickly without writing low-level networking code.

USE CASE 4

Add HTTP/3 support to an existing C++ networking application by integrating Proxygen on top of the mvfst QUIC library.

What is it built with?

C++HTTP/2HTTP/3QUIC

How does it compare?

facebook/proxygenideawu/ssdbbrndnmtthws/conky
Stars8,3458,3468,335
LanguageC++C++C++
Setup difficultyhardhardeasy
Complexity4/53/52/5
Audiencedeveloperdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires at least 3 GB of RAM to compile, all dependencies are fetched and compiled from source via a build script.

So what is it?

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.

Copy-paste prompts

Prompt 1
Using Facebook's Proxygen httpserver API, show me how to create a minimal C++ HTTP/2 server that responds with 'Hello World' and handles concurrent connections.
Prompt 2
I want to build a forward proxy in C++ using Proxygen. Walk me through the key classes I need to implement and how to wire them together using the sample in the repo as a starting point.
Prompt 3
How do I add HTTP/3 support to a Proxygen-based server on Ubuntu? What dependencies do I need and how does mvfst integrate into the build?
Prompt 4
Show me how to use Proxygen's low-level API to intercept and log HTTP/2 request headers before forwarding them to an upstream server.

Frequently asked questions

What is proxygen?

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.

What language is proxygen written in?

Mainly C++. The stack also includes C++, HTTP/2, HTTP/3.

How hard is proxygen to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is proxygen for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.