dnode - language agnostic asynchronous object-oriented RPC system built on socket.io

dnode, a mindbendingly simple library written by SubStack, builds on top of socket.io to enable language agnostic asynchronous messaging by exposing methods and making them transparently callable between nodes.

This approach allows for bidirectional, asynchronous, and symmetric communication between dnodes that can be implemented in: Node.js, Browser-side JavaScript, Ruby, Perl, Java, and soon to be Python.

This means you can start up a dnode server or client anywhere, in any language, and start quickly communicating asynchronously between each node.

Here is an example of a simple dnode ruby server / client

dnode server:

require ‘rubygems’
require ‘dnode’

DNode.new({
    :f => proc { |x,cb| cb.call(x + 1337) }
}).listen(5050)

dnode client:

require ‘rubygems’
require ‘dnode’

DNode.new({}).connect(5050) do |remote|
    remote.f(30000, proc { |x| puts “x=<#{x}>” })
end

http://github.com/substack/dnode

http://github.com/substack/dnode-perl

http://github.com/substack/dnode-ruby

http://github.com/aslakhellesoy/dnode-java

http://github.com/jesusabdullah/dnode-python

(Source: thechangelog)

  1. wactbprot reblogged this from thechangelog
  2. mattbindoff reblogged this from thechangelog and added:
    //github.com/substack/dnode-perl //github.com/substack/dnode-ruby //github.com/aslakhellesoy/dnode-java...
  3. thechangelog posted this