Erlang Universal Binary Format? Anyone using it?

2020-05-24 09:25发布

问题:

I recently stumbled upon this 2002 conference paper (Getting Erlang to talk to the outside world by Joe Armstrong) and I was wondering whether this is a standard that was ignored or if there was any adoption?

Should I focus on Apache Thrift for inter-platform communication? (whatever solution I choose will involve at least Erlang)

回答1:

You might find the following information helpful about UBF (i.e. UBF User's Guide).

http://ubf.github.com/ubf/ubf-user-guide.en.html

This might help answer some of your questions about UBF. There is also an Erlang server and client implementation of Thrift using the UBF framework (https://github.com/ubf/ubf-thrift).

Joe N.

p.s. We have been using UBF, EBF, and JSF in a production environment for approximately ~5 years. The UBF contract checker is very helpful for developing, debugging, and deploying a system.



回答2:

UBF never really caught on. Here's what Armstrong had to say in 2008. As you look into Thrift you might also look into Protocol Buffers. You can find an Erlang implementation here.

Hope this helps.



回答3:

I don't know if anyone's using Erlang's binary serialization format per se, outside of Erlang programs; but BERT (Binary ERlang Term) is an Erlang-compatible binary data interchange format and RPC protocol specified and open-sourced by the GitHub guys. It's based on and fully binary-compatible with the Erlang external term format.

As you can see on the BERT website, there are implementations in a number of programming languages, including C++, JavaScript, Ruby, Python, Scala, Haskell, Go, Factor, Scheme, Clojure, and Common Lisp. The mailing list currently has 85+ members subscribed to it, so quite a few people are indeed using BERT, and hence indirectly the Erlang binary format.

In my own use, mostly in Ruby and Common Lisp applications, BERT has proved useful as essentially a binary form of S-expressions.



回答4:

I think the Hibari guys are using it.

https://github.com/ubf/ubf/