explaingit

markqvist/reticulum

5,794PythonAudience · developerComplexity · 4/5Setup · hard

TLDR

A Python networking library that lets you build encrypted, decentralized networks over LoRa radio, WiFi, or serial links, designed for off-grid, surveillance-free communication with no central servers or internet required.

Mindmap

mindmap
  root((Reticulum))
    What it does
      Encrypted networking
      No central server
      Off-grid comms
    Transports
      LoRa radio
      WiFi adapters
      Serial links
      Internet tunnel
    Crypto
      X25519 key exchange
      AES-256 encryption
      Ed25519 signatures
    Apps Built On It
      LXMF messaging
      Nomad Network
      Sideband app
      rnsh remote shell
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build an encrypted off-grid chat app that works over LoRa radio without any internet connection or central server

USE CASE 2

Set up a private mesh network that routes messages across multiple hops with no company or government in the middle

USE CASE 3

Run the Sideband app on Android or Linux to send messages, files, and make voice calls over Reticulum-connected radio links

USE CASE 4

Tunnel Reticulum traffic over a regular internet connection to connect to distant Reticulum networks

Tech stack

PythonLoRaX25519AES-256Ed25519LXMF

Getting it running

Difficulty · hard Time to first run · 1h+

Requires physical radio hardware such as a LoRa transceiver to use the core off-grid functionality, internet tunneling works without hardware but reduces the main benefit.

In plain English

Reticulum is a networking stack written in Python. Instead of building on the standard internet protocol stack, it starts from scratch, using cryptographic principles as the foundation. It is designed to let you build your own networks using everyday hardware: LoRa radios, packet radio transceivers, WiFi adapters, serial links, and similar devices. It works even over slow, unreliable connections with very low data rates. The core idea is that anyone should be able to run a network, independent of any company, government, or central authority. Reticulum networks have no kill switch and no built-in surveillance. Multiple independent Reticulum networks can freely connect or disconnect from each other without needing any central coordination. Packets carry no source address, so you can communicate without revealing who you are. Under the hood, Reticulum handles encryption, routing, and addressing automatically. Each device on the network has a cryptographic identity. Routing happens across multiple hops without any central server directing traffic. The encryption uses established standards: X25519 key exchange, AES-256, and Ed25519 signatures. Setting up a secure, verified connection costs just three packets and around 297 bytes of data. The library runs entirely in user space, which means no special operating system privileges or hardware drivers are required. Any system that can run Python 3 can run Reticulum. You can also tunnel Reticulum traffic through a regular internet connection, so it is not limited to radio links. Developers can build applications on top of Reticulum using its API. Several projects already exist: LXMF is a message transfer protocol built on top of it, Nomad Network is a text-based platform for off-grid communication, and Sideband is a graphical app for Android, Linux, macOS, and Windows that supports file transfers, voice calls, and maps. There is also rnsh, a utility for opening remote shell sessions over Reticulum without any central infrastructure.

Copy-paste prompts

Prompt 1
How do I set up a basic Reticulum node on a Raspberry Pi connected to a LoRa radio so it can send and receive encrypted messages from another node nearby?
Prompt 2
Walk me through the Reticulum API for building a simple Python application that sends a message to a known cryptographic address on the network
Prompt 3
Explain how Reticulum handles routing across multiple hops without a central server, how does a packet find its destination?
Prompt 4
How do I connect my Reticulum node to the public testnet over a regular internet connection using Reticulum's TCP interface?
Prompt 5
What is LXMF and how does it differ from raw Reticulum? When should I build on LXMF instead of using the base Reticulum API directly?
Open on GitHub → Explain another repo

← markqvist on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.