XPRS application
One codebase on all three platforms. Transports: BLE5 to nearby devices, LoRa through a station, Reticulum over WiFi or the internet. Messages that cannot be delivered now are stored and forwarded when a path appears. No account and no central server; the identity is a keypair generated on the device.
Download
Channel: reading the release feed…
No macOS or iOS build is published; both build from source. Earlier versions are on the releases page.
Every file in this release
Updates are fetched by content hash, from GitHub or from a station over the air, so the digest below identifies the file in either case.
| file | size | sha256 |
|---|---|---|
| reading the release feed… | ||
To check a download:
sha256sum xprs-*-linux-x64.tar.gz certutil -hashfile xprs-*-setup.exe SHA256 # Windows
Installing
Android
Android 8 or newer. Sideloaded, so the browser needs the
install-unknown-apps permission once. Pick the ABI of the device
(arm64-v8a for most phones), or
xprs-<version>.apk, which contains all three at about twice
the size. Bluetooth scanning requires the location permission on Android;
position is only transmitted when you send it.
Linux
x64. No installer; state is written to
~/.local/share/xprs.
tar xf xprs-*-linux-x64.tar.gz ./xprs/xprs
A serial or USB-attached station needs the user in the
dialout group.
Windows
x64, Windows 10 or newer. The installer is unsigned: SmartScreen blocks it on first run, use "More info" then "Run anyway".
Updates
The application reads the same feed as this page and can install a new version in place: ☰ → Updates, which is also where the beta channel is enabled. F-Droid builds update through F-Droid; the in-app updater is compiled out of them.
Source
- xprs-dev/app — this application, Flutter and Dart
- xprs-dev/reticulum-dart — Reticulum, LXMF, the DHT and file transfer, in pure Dart
- xprs-dev/apps — the bundled WASM applications
- xprs-dev/firmware — station firmware for ESP32 and nRF52840 boards
- the specification — the packet format