This project is a simple implementation of Pingora, a Rust framework designed to build fast, reliable, and programmable networked systems. Pingora is battle-tested, having served more than 40 million internet requests per second for several years. It offers several features, including async Rust support, HTTP 1/2 end-to-end proxy, TLS over OpenSSL or BoringSSL, gRPC and WebSocket proxying, graceful reload, customizable load balancing and failover strategies, and support for various observability tools.
To run this project using Docker, follow these steps:
- Clone the repository.
- Navigate to the project directory.
- Build the Docker image using the provided Dockerfile:
docker compose build
- Run the Docker container:
docker-compose up
To run this project without Docker, follow these steps:
- Clone the repository.
- Navigate to the project directory.
- Build the project using Cargo:
cargo build --release
- Run the project:
cargo run
For more details about Pingora and its features, please refer to the official Pingora repository.
This project is licensed under the Apache License, Version 2.0.
Note: This project is a simple demonstration of Pingora's capabilities and does not encompass the full range of features offered by the framework.
Pingora is a Rust framework for building fast, reliable, and customizable networked systems. This project offers a simplified implementation of Pingora, showcasing its key features such as async Rust support, HTTP proxying, TLS, load balancing, and more. Ideal for those interested in exploring Pingora's capabilities in a concise example.