| CARVIEW |
Select Language
HTTP/2 302
server: nginx
date: Tue, 23 Dec 2025 19:34:11 GMT
content-type: text/plain; charset=utf-8
content-length: 0
x-archive-redirect-reason: found capture at 20100214003326
location: https://web.archive.org/web/20100214003326/https://github.com/rtomayko/node-bertrpc
server-timing: captures_list;dur=0.816638, exclusion.robots;dur=0.061320, exclusion.robots.policy;dur=0.047614, esindex;dur=0.014053, cdx.remote;dur=11.198941, LoadShardBlock;dur=261.635960, PetaboxLoader3.datanode;dur=95.324423, PetaboxLoader3.resolve;dur=73.212648
x-app-server: wwwb-app221-dc8
x-ts: 302
x-tr: 303
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
set-cookie: wb-p-SERVER=wwwb-app221; path=/
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
HTTP/2 200
server: nginx
date: Tue, 23 Dec 2025 19:34:12 GMT
content-type: text/html; charset=utf-8
x-archive-orig-server: nginx/0.7.61
x-archive-orig-date: Sun, 14 Feb 2010 00:33:26 GMT
x-archive-orig-connection: close
x-archive-orig-status: 200 OK
x-archive-orig-etag: "e38bc62a98ea126e5eb65df0c7bd6fba"
x-archive-orig-x-runtime: 75ms
x-archive-orig-content-length: 26119
x-archive-orig-cache-control: private, max-age=0, must-revalidate
x-archive-guessed-content-type: text/html
x-archive-guessed-charset: utf-8
memento-datetime: Sun, 14 Feb 2010 00:33:26 GMT
link: ; rel="original", ; rel="timemap"; type="application/link-format", ; rel="timegate"
content-security-policy: default-src 'self' 'unsafe-eval' 'unsafe-inline' data: blob: archive.org web.archive.org web-static.archive.org wayback-api.archive.org athena.archive.org analytics.archive.org pragma.archivelab.org wwwb-events.archive.org
x-archive-src: TLA-20100213232338-00790-00798-ia360906-20100214094536-00000-c/TLA-20100214000200-00791-ia360906.us.archive.org.warc.gz
server-timing: captures_list;dur=0.704995, exclusion.robots;dur=0.024607, exclusion.robots.policy;dur=0.010312, esindex;dur=0.011711, cdx.remote;dur=5.303810, LoadShardBlock;dur=150.417929, PetaboxLoader3.datanode;dur=133.482328, PetaboxLoader3.resolve;dur=80.134262, load_resource;dur=92.843768
x-app-server: wwwb-app221-dc8
x-ts: 200
x-tr: 310
server-timing: TR;dur=0,Tw;dur=0,Tc;dur=0
x-location: All
x-as: 14061
x-rl: 0
x-na: 0
x-page-cache: MISS
server-timing: MISS
x-nid: DigitalOcean
referrer-policy: no-referrer-when-downgrade
permissions-policy: interest-cohort=()
content-encoding: gzip
rtomayko's node-bertrpc at master - GitHub
This service is courtesy of Pledgie.
rtomayko / node-bertrpc
- Source
- Commits
- Network (3)
- Issues (6)
- Graphs
-
Branch:
master
click here to add a description
click here to add a homepage
-
Branches (1)
- master ✓
- Tags (0)
Sending Request…
Enable Donations
Pledgie Donations
Once activated, we'll place the following badge in your repository's detail box:
BERT-RPC client and server for node.js — Read more
| name | age | message | |
|---|---|---|---|
| |
COPYING | Sun Nov 15 06:20:46 -0800 2009 | add license info in COPYING [rtomayko] |
| |
Makefile | Mon Nov 16 05:13:18 -0800 2009 | refactoring in bertrpc; new tests [rtomayko] |
| |
README | Thu Nov 19 12:15:56 -0800 2009 | minor error ruby client example in readme [beaucollins] |
| |
examples/ | Fri Nov 27 04:55:14 -0800 2009 | more consistency in examples [rtomayko] |
| |
src/ | Fri Nov 27 04:55:14 -0800 2009 | enable trace logging in client [rtomayko] |
| |
test/ | Fri Nov 27 04:55:14 -0800 2009 | single byte / SMALL_INTEGERS are always unsigned [rtomayko] |
README
bertrpc.js This is a BERT-RPC server and client library for node.js <https://nodejs.org/>, the V8 based evented IO framework. BERT-RPC is a schemaless binary remote procedure call protocol by Tom Preston-Werner, based on the BERT (Binary ERlang Term) serialization format. See <https://bert-rpc.org/> for more information about BERT and BERT-RPC, including additional language implementations. The bert.js library was taken from Rusty Klophaus's BERT-JS project: <https://github.com/rklophaus/BERT-JS> but has been modified quite a bit at this point. INSTALL node.js must be installed and available on your PATH before continuing. It's trivial: cd /tmp curl -L https://bit.ly/nodejs | tar xvzf - cd node-* ./configure PREFIX=/usr/local make && sudo make install EXAMPLES Once you have node installed, grab a clone of the node-bertrpc git repo $ git clone git://github.com/rtomayko/node-bertrpc $ cd node-bertrpc $ node examples/helloworld.js <-- exposing: say [funs: hello, echo] Leave that there and then run the example client in a separate shell: $ node examples/helloclient.js You should see something like the following output from the server: --> connect --> 30: {call, say, hello, []} <-- 21: {reply, <<"hello">>} --> 45: {call, say, echo, [<<"Hello World">>]} <-- 33: {reply, [<<"Hello World">>]} --> 85: {call, say, echo, [[{foo, <<"bar">>}, {bar, <<"baz">>}], 21]} <-- 73: {reply, [[{foo, <<"bar">>}, {bar, <<"baz">>}], 21]} --> eof <-- close Connect with the Ruby BERT-RPC client (or any other BERT-RPC client) to play at a REPL: $ sudo gem install bertrpc -s https://gemcutter.org/ $ irb -rubygems -rbertrpc >> service = BERTRPC::Service.new('localhost', 7000) >> service.call.say.echo('hello', 'world', { 'foo' => %w[bar baz bizle] }) => ["hello", "world", {:foo=>["bar", "baz", "bizzle"]}] BERT-RPC SERVERS Require the "bertrpc" lib and expose objects: var rpc = require('bertrpc'); rpc.expose('hello', { add: function (a, b) { return a + b; }, subtract: function (a, b) { return a - b; } }); rpc.listen(7001, 'localhost'); Start the node server by running your script directly: node yourstuff.js That exposes a BERT-RPC module named "hello" with two remotely callable functions: "add" and "subtract" but you can pass any object to expose to make all of its functions available. BERT-RPC CLIENTS The BERT-RPC client library is still very experimental and likely to change significantly: var sys = require('sys'), rpc = require('bertrpc'); rpc.connect(7001, 'localhost', function (service) { sys.puts("client calling the add fun in the hello module"); service.call('hello', 'add', [1, 2], function (result) { sys.puts("client received response: " + sys.inspect(result)); // do something useful }); }); BERT ENCODING / DECODING The bert.js library includes functions for encoding, decoding, and getting a formatting string representation of BERT objects. Get in a REPL: $ NODE_PATH=./src node-repl Welcome to the Node.js REPL. Enter ECMAScript at the prompt. node> bert = require('bert'); bert.encode serializes an object graph as a BERT: node> holabert = bert.encode('hello') "\u0083m\u0000\u0000\u0000\u0005hello" node> sys.puts(bert.bin_repr(holabert)) <<131,109,0,0,0,5,104,101,108,108,111>> bert.decode deserializes a BERT, creating an object graph: node> bert.decode("\u0083m\u0000\u0000\u0000\u0005hello") "hello" SEE ALSO CODE: git clone git://github.com/rtomayko/node-bertrpc.git HOME: https://github.com/rtomayko/node-bertrpc/ BUGS: https://github.com/rtomayko/node-bertrpc/issues COPY: See the file COPYING (it's MIT)
