Lightweight Extensible Signal Transport for Reticulum
Find a file
2025-11-21 17:41:12 +01:00
.github/ISSUE_TEMPLATE Added issue templates 2025-03-11 16:44:47 +01:00
docs Sync upstream. 2025-03-14 14:23:53 +01:00
examples Sync upstream 2025-11-08 14:20:09 +01:00
LXST Sync upstream 2025-11-21 17:34:28 +01:00
.gitignore Public repo init 2025-03-11 16:41:15 +01:00
LICENSE Public repo init 2025-03-11 16:41:15 +01:00
Makefile Public repo init 2025-03-11 16:41:15 +01:00
README.md Updated readme 2025-11-08 14:26:11 +01:00
requirements.txt Public repo init 2025-03-11 16:41:15 +01:00
setup.py Sync upstream 2025-11-21 17:41:12 +01:00

Lightweight Extensible Signal Transport

LXST is a simple and flexible real-time streaming format and delivery protocol that allows a wide variety of implementations, while using as little bandwidth as possible. It is built on top of Reticulum and offers zero-conf stream routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports.

  • Cross-platform, works on Linux, Android, Windows and Mac
  • Provides a variety of ready-to-use primitives, for easily creating applications such as:
    • Telephony and live voice calls
    • Two-way radio systems
      • Direct peer-to-peer radio communications
      • Trunked and routed real-time radio systems
    • Media streaming
    • Broadcast radio
    • Public address systems
  • Can handle real-time signal streams with end-to-end latencies below 10 milliseconds
  • Supports encoding and decoding stream contents with a range of different codecs
    • Raw and lossless streams with arbitrary sample rates
      • Up to 32 channels
      • Up to 128-bit sample precision
    • Efficient, high-quality voice and audio with OPUS
      • Many different built-in profiles, from ~4.5kbps to ~96kbps
      • Profiles are pre-tuned for different applications, such as:
        • Low-bandwidth voice
        • Medium quality voice
        • High quality, perceptually lossless voice
        • Media content such as podcasts
        • Perceptually lossless stereo music
    • Ultra low-bandwidth voice communications with Codec2
      • Provides intelligible voice between 700bps and 3200bps
  • Can dynamically switch codecs mid-stream without stream re-initialization or frame loss
  • Has in-band signalling support for call signalling, communications, metadata embedding, media and stream management
  • Uses a fully staged signal pipelining, allowing arbitrary stream routing
  • Provides built-in signal mixing support for any number of channels

Transport Encryption

LXST uses encryption provided by Reticulum, and thus provides end-to-end encryption, guaranteed data integrity and authenticity, as well as forward secrecy by default.

Project Status & License

This software is in a very early alpha state, and will change rapidly with ongoing development. Consider no APIs stable. Consider everything explosive. Not all features are implemented. Nothing is documented. For a fully functional LXST program, take a look at Sideband or the included rnphone program, which provides telephony service over Reticulum. Everything else will currently be a voyage of your own making.

While under early development, the project is kept under a CC BY-NC-ND 4.0 license.

Installation

If you want to try out LXST, you can install it with pip:

pip install lxst

On Raspberry Pi (assuming Trixie / Debian 13), install various dependencies with:

# Audio codecs
sudo apt install python3-pyaudio codec2

# For hardware control over I2C:
pip install smbus2 --break-system-packages # Install smbus module if not already installed
sudo raspi-config # Enable the I2C bus under "Interface Options"
sudo apt install python3-rpi.gpio # Install gpio module system-wide