Foofoobar My takes on software engineering

Communicating with the outside world: a look at the BEAM's External Term Format

Code Beam Lite Berlin 2019


BEAM sends data to the outside world in Erlang’s External Term Format (ETF), which represents the BEAM types (e.g., integers, PIDs) as binary data. Applications like DETS use it to perform I/O operations. Furthermore, other stacks implementing it may talk with the BEAM without relying on middleware formats like JSON. We'll have a look at ETF itself, and an implementation for the Elm language, targeting the browser. The benefits of it instead of other data formats will be shown (e.g., performance, size).