Martian on Github:
https://github.com/google/martian
This is yet another HTTP proxy in Go, so I'll keep the overview brief. :)
Martian was designed for manipulating and/or verifying requests and responses on the fly during larger E2E tests. Think behavior such as stubbing out headers or verifying that all requests to your backends were over HTTPS. Martian can be used as a normal or transparent proxy and has built-in support for reconfiguring at runtime via a JSON API.
Martian includes a Go API for building custom proxy binaries if you want to write custom behavior.
We have built several different types of modification, verification, and filtering behavior that can be mixed and matched to create custom functionality solely by writing JSON.
Check out the
cookie,
header, and
querystring directories if you want to see some simple examples of how to build custom behavior and hook it into the provided JSON API. An example proxy is available in
examples/main.go and can be spun up with go run.
Check out the README if it seems interesting and feel free to ask questions or just tell us what you think. :)