Open-Source Wikis

/

Pingora

/

Pingora

cloudflare/pingora

Pingora

Pingora is a Rust framework for building fast, reliable, and programmable networked systems. It is the engine that Cloudflare uses to serve more than 40 million internet requests per second on its global edge.

The repository is a Cargo workspace of 21 crates. The umbrella crate (pingora) re-exports the parts most users need: server lifecycle, HTTP/1 and HTTP/2 protocols, TLS plumbing (OpenSSL, BoringSSL, rustls, s2n-tls), connection pooling, load balancing, an HTTP cache, and a programmable HTTP proxy framework.

What's in this wiki

  • Architecture — how the server, services, and proxy fit together
  • Getting started — install dependencies, build, run the load-balancer example
  • Glossary — terms used throughout the codebase
  • How to contribute — workflow, testing, debugging, conventions
  • Packages — one page per workspace crate
  • Features — cross-cutting capabilities (proxy phases, graceful upgrade, health checks, TLS options, observability)
  • Reference — server configuration keys and external dependencies
  • By the numbers — codebase statistics
  • Lore — history, eras, deprecated features, rewrites

What Pingora is for

The README states the three reasons to use it: services where security (memory safety) is paramount, services that are performance-sensitive, and services that need to be heavily customized. The framework provides everything from raw L4 listeners and connectors up to a phase-based HTTP proxy loop where users implement a single ProxyHttp trait to define behavior.

Repository layout

pingora/                  Umbrella crate, prelude, examples
pingora-core/             Server, services, L4/L7 protocols, connectors/listeners, modules
pingora-proxy/            Programmable HTTP proxy (phases, ProxyHttp trait)
pingora-cache/            HTTP cache layer with eviction, predictor, lock, memory store
pingora-http/             HTTP request/response header types preserving case
pingora-error/            Common error type with categories and source attribution
pingora-pool/             Generic connection pool primitives
pingora-runtime/          Tokio runtime wrappers (work-stealing and isolated)
pingora-timeout/          Faster async timer than tokio::time
pingora-load-balancing/   Backend selection, health checks, service discovery
pingora-ketama/           Ketama consistent hashing
pingora-limits/           Rate limiting (estimator, inflight, rate)
pingora-lru/              Sharded LRU cache
pingora-memory-cache/     Async in-memory cache with read-through
pingora-prometheus/       Prometheus metrics integration
pingora-header-serde/     Compressed HTTP header serialization
pingora-openssl/          OpenSSL TLS backend
pingora-boringssl/        BoringSSL (FIPS) TLS backend
pingora-rustls/           rustls TLS backend (experimental)
pingora-s2n/              s2n-tls TLS backend
tinyufo/                  TinyLFU-flavored caching algorithm

The README's "Notable crates" section is the canonical short index. This wiki extends that list with one focused page per crate under Packages.

Built by Factory AutoWiki from public repository content. It is a generated preview for codebase exploration, not source-maintained documentation.

Pingora – Pingora wiki | Factory