cloudflare/pingora

A library for building fast, reliable and evolvable network services.

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 55 minutes ago
Added to GitGenius on February 28th, 2026
Created on May 5th, 2023
Open Issues & Pull Requests: 281 (+0)
Number of forks: 1,727
Total Stargazers: 27,285 (+0)
Total Subscribers: 184 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 2.8 days
Mean response time: 38.0 days
90th percentile: 72.1 days
Tracked items: 331

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 98% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "question" is answered fastest, typically in about 27 hours, while "documentation" waits about 6 days. 44% of tracked open issues have had no activity in three months. Only 5% of issues opened in the past year have been closed.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 163
New in 7 days: 4
Closed in 7 days: 33
Avg open age: 377 days
Stale 30+ days: 138
Stale 90+ days: 126

Recent activity

Opened in 7 days: 3
Closed in 7 days: 33
Comments in 7 days: 3
Events in 7 days: 28

Top labels

  • enhancement (134)
  • question (76)
  • bug (65)
  • stale (54)
  • dependencies (22)
  • Accepted (19)
  • documentation (19)
  • help wanted (16)

Detailed Description

Pingora is a Rust framework developed and open-sourced by Cloudflare for building fast, reliable, and programmable network services. The framework has been battle-tested in production at Cloudflare, handling more than 40 million Internet requests per second for several years before being released as an open-source project. This production pedigree makes it a mature choice for organizations building performance-critical networking infrastructure.

The core functionality centers on HTTP proxying and load balancing capabilities. Pingora supports HTTP 1 and 2 end-to-end proxying, with TLS termination available through multiple backends including OpenSSL, BoringSSL, s2n-tls, and experimental rustls support. The framework also handles gRPC and WebSocket proxying, making it suitable for diverse protocol requirements. Graceful reload functionality allows updates without dropping connections, and the system provides customizable load balancing and failover strategies to meet specific deployment needs.

The repository is organized as a workspace containing multiple specialized crates. The main Pingora crate serves as the public-facing entry point, while Pingora-core defines the underlying protocols and traits. Pingora-proxy contains the HTTP proxy logic and APIs, with supporting crates handling specific concerns like error types, HTTP headers, SSL extensions for different backends, consistent hashing via the Ketama algorithm, efficient counting for rate limiting, and load balancing extensions. Additional crates provide in-memory caching with cache stampede prevention, timeout management, and the TinyUfo caching algorithm. The project explicitly notes that caching integration remains experimental with volatile APIs.

From a development perspective, the repository maintains active engagement with its community. The project overlaps contributors with several other repositories including github/gh-aw, solo-io/gloo, and longhorn/longhorn, suggesting cross-pollination within the broader systems programming community.

The framework targets developers prioritizing security, performance, and customization. As a memory-safe Rust alternative to C/C++ networking services, it addresses security concerns inherent in systems programming. The asynchronous Rust foundation ensures both speed and reliability, while the highly programmable APIs allow extensive customization for specific use cases. System support focuses on Linux as the tier-one environment, with best-effort Unix compatibility for development purposes. The project maintains a rolling minimum supported Rust version policy of six months, currently at version 1.84, and requires Clang and Perl 5 for building certain crates with external dependencies.