public
Description: BERTRPC is a Ruby BERT-RPC client library.
Homepage:
Clone URL: git://github.com/mojombo/bertrpc.git
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 Sat Nov 28 10:52:48 -0800 2009 update history for 1.1.2 release [mojombo]
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 Sat Nov 28 10:52:19 -0800 2009 better dep spec for bert; cleanup Rakefile [mojombo]
file VERSION Sat Nov 28 10:53:13 -0800 2009 Version bump to 1.1.2 [mojombo]
file bertrpc.gemspec Sat Nov 28 10:53:25 -0800 2009 Regenerated gemspec for version 1.1.2 [mojombo]
directory lib/ Sat Nov 28 10:47:54 -0800 2009 add BERTRPC::VERSION and BERTRPC.version [mojombo]
directory test/ Fri Nov 27 13:50:09 -0800 2009 Switch to using raw socket timeouts over buffer... [defunkt]
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.