mojombo / bertrpc

BERTRPC is a Ruby BERT-RPC client library.

This URL has Read+Write access

mojombo (author)
Wed Oct 28 18:17:12 -0700 2009
commit  3b76813270744fe63dcaeab7522649af56d1a751
tree    b1ec2f21e629d0508d5d46b06790e758efeceaef
parent  7cc9252fd9f2aa2e472a3a2555b22395cf102b39
name age message
file .document Mon May 18 19:33:40 -0700 2009 add readme [mojombo]
file .gitignore Mon May 18 19:24:30 -0700 2009 Initial commit to bertrpc. [mojombo]
file History.txt Loading commit data...
file LICENSE Mon May 18 19:24:30 -0700 2009 Initial commit to bertrpc. [mojombo]
file README.md Tue Oct 27 15:13:13 -0700 2009 make socket read timeout raise a BERTRPC::ReadT... [mojombo]
file Rakefile
file VERSION
file bertrpc.gemspec
directory lib/
directory test/
README.md

BERTRPC

By Tom Preston-Werner (tom@mojombo.com)

BERT-RPC client library for Ruby. Makes it ridiculously simple to interface with BERT-RPC servers.

See the full BERT-RPC specification at bert-rpc.org.

This library currently only supports the following BERT-RPC features:

  • call requests
  • cast requests

BERTRPC was developed for GitHub and is currently in production use performing millions of RPC requests every day. The stability and performance have been exemplary.

Installation

$ gem install bertrpc -s http://gemcutter.org

Examples

Require the library and create a service:

require 'bertrpc'
svc = BERTRPC::Service.new('localhost', 9999)

Make a call:

svc.call.calc.add(1, 2)
# => 3

The underlying BERT-RPC transaction of the above call is:

-> {call, calc, add, [1, 2]}
<- {reply, 3}

Make a cast:

svc.cast.stats.incr
# => nil

The underlying BERT-RPC transaction of the above cast is:

-> {cast, stats, incr, []}
<- {noreply}

Documentation

Creating a service:

# No timeout
svc = BERTRPC::Service.new('localhost', 9999)

# 10s socket read timeout, raises BERTRPC::ReadTimeoutError
svc = BERTRPC::Service.new('localhost', 9999, 10)

Copyright

Copyright (c) 2009 Tom Preston-Werner. See LICENSE for details.