h2non / balboa

Simple HTTP forward proxy
MIT License
16 stars 1 forks source link

balboa Build Status NPM

Simple, programmatic and hackable node.js HTTP forward proxy built-on-top of rocky.

Not designed for serious things, only for playground/development purposes.

Features

Whish list

Installation

npm install -g balboa

For programmatic usage only install it in your dependency tree:

npm install balboa --save

Usage

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.

Programmatic API

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.

Supported options

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.

balboa.VERSION

Current package version

balboa.rocky

Rocky proxy. See full API docs here.

License

MIT - Tomas Aparicio