Fast event emitter - compatible with node's EventEmitter but faster!


This is yet another event emitter implementation for node.js. It is nearly fully compatible with the node EventEmitter API (see the differences section). The main purpose for node-ev is to provide very fast event emission when dealing with a relatively low number of listeners. Run the provided benchmarks to see if this is for you.

  • New methods
    • .off(event[, listener]): alias to removeListener()
    • .emit_myevent(): alias for emit('myevent')
  • Listeners are triggered without any context whereas EventEmitter applies the emitter's
var EV = require('ev')
var ev = new EV({ match: 2 })
function test (a) {
    console.log('received', a)
ev.on('match', test)
ev.emit('match', 'standard emit') // received standard emit 
ev.emit_match('shortcut emit!') // received shortcut emit! 
  • on(event, listener): add a listener for [event]
  • once(event, listener): add a listener for [event] and remove it once triggered
  • off(event, listener): remove the listener for [event]
  • off(event): remove all listeners for [event]
  • removeAllListeners(event): remove all listeners for [event]
  • removeAllListeners(): remove all listeners for all events
  • emit(event[, arguments]): emit [event] with a list of arguments
  • setMaxListeners(max): set the maximum number of listeners after which a warning is issued, but the listeners are still added
  • listeners([event]): get the list of listeners for [event] or all listeners for all events