dnode is an asynchronous rpc system for node.js that lets you call remote functions.

You can pass callbacks to remote functions, and the remote end can call the functions you passed in with callbacks of its own and so on. It’s callbacks all the way down!

dnode uses a newline-terminated JSON protocol.

These libraries implement the dnode protocol too so you can make RPC calls between scripts written in different languages.