Skip to content

onurzdg/tokio-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

  • A Proxy server that Relies on Tokio to scale to heavy load via green threads
  • Establishes tunnels via HTTP Connect handshake
  • Creates short-lived tunnels to provide fairness to all clients
  • Uses an optional whitelist or blacklist to restrict requests to si.

Things to Improve

  • Read server configuration parameters from a YAML file and replace hardcoded parameters in the code
  • Read parameters from command line to select port and max allowed connection limit
  • Write end-to-end tests
  • Use a DNS resolver and cache IPs of accessed sites
  • Replace calls to "tokio::copy(src, dst)" with a custom loop to be able to accurately report the amount of bytes transferred while working with a timeout.
  • Stress testing and tweaking to find ideal server parameters around timeouts

Running

  1. cargo build && cargo run
  2. Set proxy settings in Firefox to 127.0.0.1:12345
  3. Browse gfycat.com and giphy.com

About

Tokio-based proxy server

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages