Universal Binary Format and Bert-RPC
Copyright (c) 2011-2016 by Joseph Wayne Norton
Authors: Joseph Wayne Norton (
This is UBF-BERTRPC, a framework for integrating UBF, EBF, and Bert-RPC. This repository depends on the UBF open source repository.
This repository is experimental in nature and intended for training purposes.
Quick Start Recipe
To download, build, and test the ubf_bertrpc application in one shot, please follow this recipe:
$ mkdir working-directory-name $ cd working-directory-name $ git clone https://github.com/ubf/ubf-bertrpc.git ubf_bertrpc $ cd ubf_bertrpc $ make deps clean compile test
Where should I start?
This README is a good first step.
The UBF User's Guide is the best next step. Check out http://ubf.github.com/ubf/ubf-user-guide.en.html for further detailed information.
Sample eunit tests can be found in the test/eunit directory.
What is UBF?
UBF is the "Universal Binary Format", designed and implemented by Joe Armstrong. UBF is a language for transporting and describing complex data structures across a network. It has three components:
UBF(a) is a "language neutral" data transport format, roughly equivalent to well-formed XML.
UBF(b) is a programming language for describing types in UBF(a) and protocols between clients and servers. This layer is typically called the "protocol contract". UBF(b) is roughly equivalent to Verified XML, XML-schemas, SOAP and WDSL.
UBF(c) is a meta-level protocol used between a UBF client and a UBF server.
See http://ubf.github.com/ubf for further details.
What is Bert-RPC?
Bert-RPC is a remote procedure call protocol. See http://bert-rpc.org/ for full details.
Bert-RPC is actually just a subset of UBF's binary network format implementation known as "EBF". The name "EBF" is short for "Erlang Binary Format".
For further information and help for related tools, please refer to the following links:
Erlang - http://www.erlang.org/
R15B01 or newer, 17.0 has been tested most recently
Git - http://git-scm.com/
Git 1.5.4 or newer, Git 1.9.3 has been tested most recently
GitHub - https://github.com
Many, many thanks to Joe Armstrong, UBF's designer and original implementer.
Gemini Mobile Technologies, Inc. has approved the release of this repository under an MIT license.