npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

irrlicht

v0.16.0

Published

Intercepting, Recording, Replaying HTTP(S) Proxy

Downloads

9

Readme

Irrlicht

npm npm downloads build status

Irrlicht, the German name for will-o'-the-wisp, the ghostly light sometimes seen at night over bogs and swamps.

Install via npm

$ npm install irrlicht

Known Issues

Travis CI
Irrlicht might not run on Travis CI out of the box. If you run into problems, add the following lines to your .travis.yml to work around this issue:

addons:
  apt:
    sources:
    - ubuntu-toolchain-r-test
    packages:
    - g++-4.8
env:
  CXX=g++-4.8

Command Line

$ npm install --global irrlicht
Usage: irrlicht [command] [options]

Commands:
  record    Record HTTP responses (implies MITM, no-cache)
  replay    Replay recorded HTTP responses (implies MITM)

Options:
  --help, -h         Show help
  --version, -v      Show version number
  --port, -p         Port to run the proxy on                    [default: 8989]
  --host, -H         Hostname to bind to
  --enable-cache     Disable forced cache revalidation          [default: false]
  --disable-network  Enable proxying to remotes during replay    [default: true]
  --ignore-local     Record & replay on local interfaces         [default: true]
  --fixtures, -f     Fixture data path
  --mitm             Enable MITM on SSL/TLS                     [default: false]
  --ca               SSL CA Certificate path
  --cert             SSL Certificate path
  --key              SSL Certificate Key path

Usage

var Irrlicht = require( 'irrlicht' )
var proxy = new Irrlicht( options )
// Start listening on a given port (and optionally, host)
proxy.listen( port[, host], function() {
  console.log( 'Proxying HTTP via', this.http.address() )
  console.log( 'Proxying HTTPS via', this.https.address() )
})

API

Function new Irrlicht( options )

  • Object options:
    • Boolean record: Record HTTP responses
    • Boolean replay: Replay saved HTTP responses
    • Boolean enableNetwork: Enable proxying to remotes during HTTP replay
    • Boolean ignoreLocal: Record & replay responses to local network interfaces
    • String path: Fixture data path
    • Boolean noCache: Force cache revalidation
    • Number maxSockets: Maximum number of sockets for each server
    • Object ssl: For more detail, see iojs.org/api/tls
      • Buffer|String key: The private key of the server in PEM format
      • Array|Buffer|String cert: The certificate key of the server in PEM format
      • Array ca: Trusted certificates in PEM format
      • Array|String crl: PEM encoded CRs (Certificate Revocation List)
      • String ciphers: The ciphers to use or exclude, seperated by :

Properties

  • String socket: Filename of HTTPS socket
  • Agent httpAgent: HTTP socket pooling agent
  • Agent httpsAgent: HTTPS socket pooling agent
  • Server http: HTTP server
  • Server https: HTTPS server
  • Boolean record: Record HTTP responses
  • Boolean replay: Replay saved HTTP responses
  • String path: Fixture data path
  • Boolean enableNetwork: Enable proxying to remotes during HTTP replay
  • Boolean ignoreLocal: Record & replay responses to local network interfaces
  • Boolean noCache: Force cache revalidation
  • Boolean mitm: MITM SSL/TLS connections

Methods

getRequestOptions( req )
handleConnect( req, socket, head )
handleRequest( req, res )
proxyRequest( req, res[, options] )
recordRequest( req, res[, options] )
replayRequest( req, res[, options] )
listen( port[, host][, callback] )
close( [callback] )

Events

  • error ( error )
  • request ( request, response )
  • response ( request, remoteResponse )
  • listening
  • close ( error )