0.1.2 • Published 8 years ago

balboa v0.1.2

Weekly downloads
2
License
MIT
Repository
github
Last release
8 years ago

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

  • 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

Whish list

  • Full HTTPS support (forward TLS peer certificate)

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