// the find
mojombo/erlectricity
Erlectricity exposes Ruby to Erlang and vice versa.
Erlectricity lets a Ruby process talk to Erlang over stdio using Erlang's external term format, so a `port_command`/`open_port` pair on the Erlang side can call out to Ruby and get typed terms back. It's for someone bolting a Ruby component onto an existing Erlang system without writing a native NIF or a full distributed-Erlang node.
The term encode/decode path drops into a C extension (ext/decoder.c) rather than doing it all in pure Ruby, so the wire-format work isn't naively slow. The pattern-matching DSL (`f.when([:tag, Type]) { ... }`) mirrors Erlang's own `receive`/`case` matching almost 1:1, which makes the Ruby side readable to anyone who already knows the Erlang side. Scope is narrow and the port-based protocol (`{packet, 4}`) is a sane, well-understood IPC mechanism rather than something bespoke.
It's built on ports, not the actual Erlang distribution protocol, so you get request/response IPC with one Erlang node, not a Ruby node that other Erlang nodes can see and message directly — no fault tolerance, no node monitoring, no clustering story. The examples and README use `Fixnum`, which was removed from Ruby in 2.4+, meaning the documented code doesn't run on any Ruby released after 2016 without patching. Last real activity predates modern Ruby and Erlang/OTP versions by years despite the 2022 push date in the metadata, and there's no CI config in the tree, so there's no signal whether it still works against current Ruby or a current Erlang release at all.