From c683a83f79e8301978260d3166a051d3eddfd267 Mon Sep 17 00:00:00 2001 From: Jun Kurihara Date: Sat, 23 Jul 2022 01:44:25 +0900 Subject: [PATCH] update readme --- README.md | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 286e4f8..6541617 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,11 @@ -# rust-rpxy -[WIP] HTTP (reverse) proxy written in Rust +# rpxy: A simple and fast reverse-proxy for multiple host names, written in pure Rust + +**WIP Project** + +## Introduction + +`rpxy` [ahr-pik-see] is an (currently experimental) implementation of simple and lightweight reverse-proxy, which is based on `hyper`, `rustls` and `tokio`, i.e., written in pure Rust. Our `rpxy` allows to route multiple host names to appropriate backend application servers while serving TLS connections. + +This project is still *work-in-progress*. But it is already working in some production environments and serves numbers of domain names. Furthermore it dramatically outperforms NGINX and Caddy in the setting of very simple HTTP reverse-proxy scenario (See `./bench` directory). + + `rpxy` provides the sanitization of TLS's SNI (server name indication) in default by correctly binding a certificate used to establish an underlying TLS connection with backend application specified in the overlaid HTTP HOST header (or URL in Request line). Additionally, as a somewhat unstable feature, our `rpxy` can handle the brand-new HTTP/3 connection thanks to `quinn` and `hyperium/h3`.