Simple, programmatic and hackable node.js HTTP forward proxy built-on-top of rocky.
Not designed for serious things, only for playground/development purposes.
- Dead simple to set up
- Acts like a traditional HTTP forward proxy (e.g: Squid)
- Supports HTTP interceptors to modify request/response payloads
- Programmatically hackable (see rocky API)
- Command-line interface
- Full HTTPS support (forward TLS peer certificate)
npm install -g balboa
For programmatic usage only install it in your dependency tree:
npm install balboa --save
Start the forward proxy:
balboa -p 8080
Then you can configure your web browser to use balboa
as proxy (Firefox proxy settings below):
Finally, try browsing some site.
Simple programmatic set up of an HTTP proxy to sniff and transform HTML metadata:
const balboa = require('balboa')
const proxy = balboa()
proxy
.route
.transformResponseBody(function (req, res, next) {
if (/html/i.test(res.getHeader('content-type')) === false) return next()
var body = res.body.toString()
// Compose the new body
var newBody = body.replace(/<body(.*)>/, '<body$1><h1>HELLO WORLD</h1>')
// Set the modified body
next(null, newBody, 'utf8')
})
proxy.listen(8080)
console.log('Proxy server listening on port:', 8080)
balboa([ opts ]) => rocky
Creates a new HTTP or HTTPS proxy.
See rocky docs for full supported options.
balboa.proxy([ opts ]) => rocky
Creates an HTTP proxy.
balboa.proxySSL(opts) => rocky
Creates a SSL proxy with the given options. See an example here.
Current package version
Rocky proxy. See full API docs here.
MIT - Tomas Aparicio