vitaliel / bertrpc forked from mojombo/bertrpc

BERTRPC is a Ruby BERT-RPC client library.

This URL has Read+Write access

vitaliel (author)
Sun Nov 08 12:09:32 -0800 2009
commit  2d352288a0f19dc6186ab30027469698db7e2e29
tree    d3a04a048dd213dc22cd0f8d84f0519449560f99
parent  5f32acc7dfd2b02348c14f94f82699b72a33f20b
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.