
While working on getting Veilid to run on the ESP32S3, I was left trying to figure out something to do with it. Since the ESP32 is used frequently in Meshtastic and MeshCore capable hardware I figured I'd try to create an ESP32 native bridge for MeshCore using Veilid.

This ended up being highly impractical because the ESP32, while technically capable of running Veilid (I did absolutely get it to run), and even technically capable of bridging MeshCore over Veilid, it isn't capable of doing it reliably. The reason for this is that the ESP32, while quite capable, is just too resource limited to be able to perform distributed hash table (DHT) operations quickly enough to be effective in this role. SO... I had to pivot.
I opted to halt that project, and devise a new architecture for the bridge. Since the ESP32 couldn't keep up with the veilid network operations I opted to instead build a Rust app that interfaces with the radios over their USB serial connection, allowing the radios to do their thing natively while the app (running on a much more capable machine like an RPi or a desktop/laptop) handles the Veilid network operations. This has worked extremely well.
Since we're interfacing with the radios over their serial connection we're no longer limited to just MeshCore either, we can support anything we want, really. I opted to add support for Meshtastic, too. The only addition needed to support it was to add support to talk to the radio via protobuf.
———————
Key Features
- Run as background daemon with option to attach a TUI session
- supports MeshCore and Meshtastic
- Support for both USB Serial or BLE radio integration
- Veilid for storage and transport
- Feed subscription model - subscribe to the people you want to talk with to see their messages (and vice versa).
- bridge between Meshcore - Meshcore, Meshtastic - Meshtastic, or cross the streams and bridge between Meshcore and Meshtastic (and possibly save the Universe if it doesn't implode).
- support for private channels (which can be managed via Spectra)
- Support for Linux (amd64, arm64) and MacOS (Apple Silicon)
Coming Soon:
- Private relay to a single recipient node instead of broadcast to all subscribers.
More features may come as things progress.
Current version: v0.5.0 (0.6.0 coming soon!)
The code, along with documentation and pre-compiled binaries, can be found here: hackers.town forge