https://github.com/cloudflare/pingora Skip to content Toggle navigation Sign in * Product + Actions Automate any workflow + Packages Host and manage packages + Security Find and fix vulnerabilities + Codespaces Instant dev environments + Copilot Write better code with AI + Code review Manage code changes + Issues Plan and track work + Discussions Collaborate outside of code Explore + All features + Documentation + GitHub Skills + Blog * Solutions For + Enterprise + Teams + Startups + Education By Solution + CI/CD & Automation + DevOps + DevSecOps Resources + Learning Pathways + White papers, Ebooks, Webinars + Customer Stories + Partners * Open Source + GitHub Sponsors Fund open source developers + The ReadME Project GitHub community articles Repositories + Topics + Trending + Collections * Pricing Search or jump to... Search code, repositories, users, issues, pull requests... Search [ ] Clear Search syntax tips Provide feedback We read every piece of feedback, and take your input very seriously. [ ] [ ] Include my email address so I can be contacted Cancel Submit feedback Saved searches Use saved searches to filter your results more quickly Name [ ] Query [ ] To see all available qualifiers, see our documentation. Cancel Create saved search Sign in Sign up 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 {{ message }} cloudflare / pingora Public * Notifications * Fork 101 * Star 3.1k * A library for building fast, reliable and evolvable network services. License Apache-2.0 license 3.1k stars 101 forks Branches Tags Activity Star Notifications * Code * Issues 2 * Pull requests 10 * Actions * Projects 0 * Security * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Security * Insights cloudflare/pingora This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository. main BranchesTags Go to file Code Folders and files Last commit Last Name Name message commit date Latest commit History 2 Commits .github .github docs docs pingora-boringssl pingora-boringssl pingora-cache pingora-cache pingora-core pingora-core pingora-error pingora-error pingora-header-serde pingora-header-serde pingora-http pingora-http pingora-ketama pingora-ketama pingora-limits pingora-limits pingora-load-balancing pingora-load-balancing pingora-lru pingora-lru pingora-memory-cache pingora-memory-cache pingora-openssl pingora-openssl pingora-pool pingora-pool pingora-proxy pingora-proxy pingora-runtime pingora-runtime pingora-timeout pingora-timeout pingora pingora tinyufo tinyufo .gitignore .gitignore .rustfmt.toml .rustfmt.toml Cargo.toml Cargo.toml LICENSE LICENSE README.md README.md View all files Repository files navigation * README * Code of conduct * Apache-2.0 license * Security Pingora Pingora banner image What is Pingora Pingora is a Rust framework to build fast, reliable and programmable networked systems. Pingora is battle tested as it has been serving more than 40 million Internet requests per second for more than a few years. Feature highlights * Async Rust: fast and reliable * HTTP 1/2 end to end proxy * TLS over OpenSSL or BoringSSL * gRPC and websocket proxying * Graceful reload * Customizable load balancing and failover strategies * Support for a variety of observability tools Reasons to use Pingora * Security is your top priority: Pingora is a more memory safe alternative for services that are written in C/C++. * Your service is performance-sensitive: Pingora is fast and efficient. * Your service requires extensive customization: The APIs Pingora proxy framework provides are highly programmable. Getting started See our quick starting guide to see how easy it is to build a load balancer. Our user guide covers more topics such as how to configure and run Pingora servers, as well as how to build custom HTTP server and proxy logic on top of Pingora's framework. API docs are also available for all the crates. Notable crates in this workspace * Pingora: the "public facing" crate to build to build networked systems and proxies. * Pingora-core: this crates defined the protocols, functionalities and basic traits. * Pingora-proxy: the logic and APIs to build HTTP proxies. * Pingora-error: the common error type used across Pingora crates * Pingora-http: the HTTP header definitions and APIs * Pingora-openssl & pingora-boringssl: SSL related extensions and APIs * Pingora-ketama: the Ketama consistent algorithm * Pingora-limits: efficient counting algorithms * Pingora-load-balancing: load balancing algorithm extensions for pingora proxy * Pingora-memory-cache: Async in-memory caching with cache lock to prevent cache stampede. * Pingora-timeout: A more efficient async timer system. * TinyUfo: The caching algorithm behind pingora-memory-cache. System requirements Systems Linux is our tier 1 environment and main focus. We will try our best for most code to compile for Unix environments. This is for developers and users to have an easier time developing with Pingora in Unix-like environments like macOS (though some features might be missing) Both x86_64 and aarch64 architectures will be supported. Rust version Pingora keeps a rolling MSRV (minimum supported Rust version) policy of 6 months. This means we will accept PRs that upgrade the MSRV as long as the new Rust version used is at least 6 months old. Our current MSRV is 1.72. Contributing Please see our contribution guidelines. License This project is Licensed under Apache License, Version 2.0. About A library for building fast, reliable and evolvable network services. Resources Readme License Apache-2.0 license Code of conduct Code of conduct Security policy Security policy Activity Custom properties Stars 3.1k stars Watchers 86 watching Forks 101 forks Report repository Releases No releases published Packages 0 No packages published Contributors 3 * @eaufavor eaufavor Yuchen Wu * @andrewhavck andrewhavck andrew hauck * @drcaramelsyrup drcaramelsyrup Edward Wang Languages * Rust 100.0% Footer (c) 2024 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Docs * Contact * Manage cookies * Do not share my personal information You can't perform that action at this time.