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 Wed Oct 28 18:16:40 -0700 2009 update history for 1.1.1 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 Wed Oct 28 18:16:14 -0700 2009 remove dep on erlectricity and require bert 1.1... [mojombo]
file VERSION Wed Oct 28 18:16:58 -0700 2009 Version bump to 1.1.1 [mojombo]
file bertrpc.gemspec Wed Oct 28 18:17:12 -0700 2009 Regenerated gemspec for version 1.1.1 [mojombo]
directory lib/ Tue Oct 27 15:13:13 -0700 2009 make socket read timeout raise a BERTRPC::ReadT... [mojombo]
directory test/ Tue Oct 27 15:13:13 -0700 2009 make socket read timeout raise a BERTRPC::ReadT... [mojombo]
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.