Interoperability in Elixir: Dealing With the World Outside of the Beam
summary
Practical comparison of ports, Nifs, and Jinterface with concrete examples: ports handle about 80 percent of interop cases, use byte‑oriented protocols and fixed 4‑byte packet framing, and pair with ETF term_to_binary/binary_to_term so Ruby can receive Erlang tuples; demo sends x=3 y=5 and gets back 8, and another multi‑line eval returns 15. Includes a gen_server wrapper supervised for restart on crash and recommends available ETF libraries and port supervision patterns.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:30About me
- 1:31Interoperability
- 6:53What are ports
- 8:42How to create ports
- 9:09How to open a port
- 10:26Ruby example
- 14:29Binary to Term
- 19:14Ruby Server
- 23:23Ruby Port Server
- 27:31Supervision
- 28:32Ruby
- 29:09Resources
related talks
43mSecuring Elixir Applications
43mConcurrency Abstractions for Application Security
41mEnd to End Encryption with Elixir and Beam
54mErlang + CZMQ: Scalable, Secure, Cross Language Messaging
32mDon’t let it crash: How we applied our security checks on Elixir code
18mSecuring Erlang and Elixir applications
25mFIPS 140-2 in BEAM Apps
50mFixing Erlang’s Distribution Protocol
