Blazing fast communication between Node.js processes
You can install hermod using Node Package Manager (npm):
npm install hermod
- Supports Request/Reply communication.
- Supports Send without Reply communication.
- Supports multiple server using round robin.
- Fault tolerant: clients will reconnect to servers even if server goes down and comes back later.
- Extremely fast (disables TCP Nagle's algorithm).
- Zero dependencies on other libraries.
- Block non-desired IPs.
// Modules
var hermod = require('hermod');
// Create server
var server = hermod.createServer( 8000 );
// Listen petitions
server.on( 'hello', function( name, callback ){
callback( null, 'Hi ' + name + ', I am the server' );
});
// Modules
var hermod = require('hermod');
// Create client
var client = hermod.createClient( 8000 );
// Make a petition
client.request( 'hello', 'John', function( error, response ){
console.log( 'Server says', response );
});
// Modules
var hermod = require('hermod');
// Create server
var server = hermod.createServer( 8000 );
// Listen petitions
server.on( 'hello', function( name, callback ){
callback( null, 'Hi ' + name + ', I am the server 1' );
});
// Modules
var hermod = require('hermod');
// Create server
var server = hermod.createServer( 8001 );
// Listen petitions
server.on( 'hello', function( name, callback ){
callback( null, 'Hi ' + name + ', I am the server 2' );
});
// Modules
var hermod = require('hermod');
// Create client
var client = hermod.createClient( 8000, 8001 );
// Make a petition
client.request( 'hello', 'John', function( error, response ){
console.log( 'Server says', response );
});
// Modules
var hermod = require('hermod');
// Create server
var server = hermod.createServer( 8000 );
// Listen petitions
server.on( 'hello', function( name ){
console.log( 'I received a message from ' + name' );
});
// Modules
var hermod = require('hermod');
// Create client
var client = hermod.createClient( 8000 );
// Make a petition
client.send( 'hello', 'John' );
// Modules
var hermod = require('hermod');
// Create server
var server = hermod.createServer(
8000,
null, // Host definition, use falsy values for autoconfiguration
[ '127.0.0.1', '192.168.1.42' ] // Accepted IPs. If it isn't defined all IPs are accepted.
);
// Listen petitions
server.on( 'hello', function( name ){
console.log( 'I received a message from ' + name' );
});
You can see benchmark results in https://github.com/javiergarmon/hermod-benchmark
- 0.0.5 ( 2014/06/26 ): Limit connections for specific IPs. Support host definition in server.
- 0.0.4 ( 2014/04/02 ): Optimized and
send()
method support. - 0.0.3 ( 2014/04/02 ): Optimized and better documentation.
- 0.0.2 ( 2014/04/02 ): Optimized and prevent chuncked commands.
- 0.0.1 ( 2014/03/20 ): First version.
- Support encrypted communications
shout()
client methodclose()
client method- Authentication support
- Middleware support