Packages

Elixir NIF wrapper for the Reticulum cryptographic mesh networking stack.

Current section

Files

Jump to
ex_reticulum lib ex_reticulum.ex
Raw

lib/ex_reticulum.ex

defmodule ExReticulum do
@moduledoc """
Elixir NIF wrapper for the Reticulum-rs mesh networking stack.
ExReticulum enables Elixir applications to participate as full nodes
in Reticulum networks — creating identities, announcing destinations,
establishing encrypted links, and routing packets.
## Quick Start
# Generate an identity
{:ok, identity} = ExReticulum.Identity.generate()
# Start a transport node
{:ok, transport} = ExReticulum.Transport.start_link(
identity: identity,
name: "my_node"
)
# Add a network interface
{:ok, :added} = ExReticulum.Transport.add_interface(
transport, :tcp_client, address: "127.0.0.1:4242"
)
# Create and announce a destination
{:ok, dest} = ExReticulum.Transport.add_destination(
transport, identity, "myapp", "service"
)
{:ok, :announced} = ExReticulum.Transport.announce(transport, dest)
# Subscribe to incoming announces
{:ok, :subscribed} = ExReticulum.Transport.subscribe(transport, :announces)
## Modules
- `ExReticulum.Identity` — Cryptographic identity management (Ed25519/X25519 key pairs)
- `ExReticulum.Transport` — Core networking GenServer managing interfaces, destinations, and events
- `ExReticulum.Destination` — Addressable network endpoints
- `ExReticulum.Link` — Bidirectional encrypted communication channels
- `ExReticulum.Interface` — Network interface configuration helpers
- `ExReticulum.Announce` — Announce event struct received from the network
- `ExReticulum.LinkEvent` — Link state change event struct
- `ExReticulum.ReceivedData` — Incoming data event struct
- `ExReticulum.Error` — Exception raised by bang variants
"""
end