It is a multi-threaded forward proxy server built in Go.
- HTTP proxy Support
- Concurrent request handling with semaphore limiting
- Caching Strategy
- In-memory LRU Cache
- Handling requests on the TCP level
├── app.go # contains server classes
├── go.mod # go module file
├── helper.go # helper functions
├── internal
│ └── cache
│ └── lru.go # LRU cache implementation
├── main.go
├── proxy.go # proxy implementation
Run directly
git clone <repository-url>
cd multithreaded-proxy-web-server
go mod tidy
go build -o bin/proxy .
./bin/proxy -port=9000
now the proxy server is running on port 9000
First, setup proxy setting to port 9000 in postman application, and you are all good to send your requests.
- HTTPS support
- Cache Invalidation policy