forwarder
forwarder copied to clipboard
Forwarder is a production-ready, fast MITM proxy with PAC support. It's suitable for debugging, intercepting and manipulating HTTP traffic. It's used as a core component of Sauce Labs Sauce Connect Pr...
Forwarder Proxy

Forwarder is a production-ready, fast MITM proxy with PAC support.
It's suitable for debugging, intercepting and manipulating HTTP traffic.
It's used as a core component of Sauce Labs Sauce Connect Proxy.
It is a forward proxy, which means it proxies traffic from clients to servers (e.g. browsers to websites), and supports CONNECT requests.
It can proxy:
- HTTP/HTTPS/HTTP2 requests
- WebSockets (both HTTP and HTTPS)
- Server Sent Events (SSE)
- TCP traffic (e.g. SMTP, IMAP, etc.)
Documentation
The documentation is available at forwarder-proxy.io.
Development
Quick Start
- Install Docker or Podman, for Podman configuration see this guide
- Install Docker Compose
- Install
make - Run
make install-dependencies
Linting
- Run
make fmtto auto format code - Run
make lintto lint code - Edit .golangci.yml to change linting rules
Building Devel Images
Run make update-devel-image to build the devel docker image.
Testing
- Run
make testto run Go unit tests - Run
make -C e2e run-e2eto run e2e tests, more details in e2e/README.md
Updating tools versions
All tools versions are defined in .version file. To update a version, edit the file and create a merge request. CI will run and update the CI image with the new version.