Attempt at a seamless Iroh integration via Elixir + Rustler. Elixir orchestrates and manages concurrency, while Rust handles low-level networking, swarm-forming, encryption, and performance-critical tasks. Currently includes only basic Iroh functionality — with randomized PKI and gossip topic assignment.
No erlang distribution features leveraged so far ( only iroh node spawning scope, no iroh erl dist features ); docker-compose setup with multiple nodes instead of spawning all iroh nodes on one erlang instance is WIP. Starting many nodes ( thousands ) on one machine can easily upset your network stack and / or consumer grade router. It requires careful filedescriptor / ulimit -n X configuration suitable to the number of nodes in the swarm ( 5 peer connections + relay connection per node ). Also the tests with up to ~4000 nodes were configured with a local relay server instead of public iroh servers. Default ulimit on osx is 256. This configuration isn't integrated in livebook at the moment and needs to be executed before starting livebook.
If available in Hex, the package can be installed
by adding iroh_ex
to your list of dependencies in mix.exs
:
def deps do
[
{:iroh_ex, "~> 0.0.10"}
]
end
Documentation can be generated with ExDoc and published on HexDocs. Once published, the docs can be found at https://hexdocs.pm/iroh_ex.