Skip to content

A concurrent reverse web proxy which sits in front of a back-end web server, forwards client (i.e. browser) requests to that web server, and returns them to the client.

Notifications You must be signed in to change notification settings

AG3NTZ3R0/concurrent-web-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Concurrent Web Proxy

Introduction

The Concurrent Web Proxy is a high-performance reverse web proxy developed using Rust, a modern systems programming language renowned for its safety features and performance capabilities. A reverse web proxy is a server that sits in front of a back-end web server, forwarding client requests to it. The responses returned to the client give the impression of originating directly from the back-end web server. Reverse proxies are commonly employed to bolster the security, performance, and reliability of the back-end server.

Design

This project leverages a multi-threaded Rust web server as its foundation, enabling it to process web requests from multiple clients concurrently. This design ensures that a slow client request does not impede the processing of requests from other clients, thereby enhancing the overall performance of the server.

Safety and Performance

Rust's language safety features significantly enhance software security. For instance, Rust's memory model is as safe as Java's but without the costly overhead of Java's garbage collector. This design makes common vulnerabilities in C programs, such as buffer overflow, impossible in Rust, thereby providing a secure and efficient environment for systems programming.

Conclusion

The Concurrent Web Proxy project offers a practical exploration of Rust's safety and performance features, providing a valuable learning experience for those interested in systems programming and network communication.

About

A concurrent reverse web proxy which sits in front of a back-end web server, forwards client (i.e. browser) requests to that web server, and returns them to the client.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages