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.)
The documentation is available at opensource.saucelabs.com/forwarder/.
- Install Docker or Podman, for Podman configuration see this guide
- Install Docker Compose
- Install
make
- Run
make install-dependencies
- Run
make fmt
to auto format code - Run
make lint
to lint code - Edit .golangci.yml to change linting rules
Run make update-devel-image
to build the devel docker image.
- Run
make test
to run Go unit tests - Run
make -C e2e run-e2e
to run e2e tests, more details in e2e/README.md
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.