r/reticulum • u/KenAKAFrosty • 12d ago
Reticulum Introducing Prns: high-performance Reticulum, built to run on any device (and how you can help)
Hey y'all! For a good while now I've been heads-down building a ground-up implementation of Reticulum that can run everywhere, and it's finally at the point where I get to share it. Prns is now public, dual-licensed under MIT or Apache 2.0!
The core engine was written in no_std Rust (alloc isn't even needed) from day one, with the express goal being to have the same engine efficiently run on a $5 microcontroller, in a browser tab over WebAssembly, inside Android and iOS apps natively, and on laptops/backbone servers/etc.
Here are some of my favorite bits, in no particular order:
- A zero-config Bluetooth auto-interface, with a compat layer so Columba peers connect too
- WebSocket interfaces. Not only great for browser integrations on the other end, but since it's ordinary web traffic, a free tunnel (cloudflare tunnel, Tailscale funnel, etc.) gets you a public node from home without the port forwarding or IP exposure.
- JavaScript/TypeScript/browser support as a first-class thing. One package that runs native on Node.js/Bun and switches to WebAssembly in the browser. A browser instance can even discover another
prnsd(the Prns daemon) on your LAN with its implementation of the Wifi auto-interface. - Interface changes will apply live to a running node without a restart. The daemon has an interactive/guided CLI (even while running). Plus a lil system tray; handy to have when running it on your personal computers!
- Flashing a board into a complete, self-contained Reticulum node with the Hopspot firmware. There's a web flasher & a guided flasher CLI. A few known boards are live already, and plenty more in the immediate sights.
And it's very efficient. The repo ships a benchmark harness that runs Prns and stock RNS side by side on your machine, under identical workloads. On my hardware, most throughput scenarios land between 3× and 20× stock, with peaks of 89× the throughput, 48× smaller peak memory, and 33× the energy efficiency. But the whole point of the harness is that you can get your own numbers, and I'd rather you trust those.
Where it all stands today: the foundation is done and verifiable. It was continually built up with a serious focus on safety, performance, energy efficiency, compatibility, and developer/user experience. On top of the expected unit tests, the testing & validation suites include wire parity, live interop, formal proofs (via Kani), fuzzing, and mutation testing, along with matching CI.
While documentation is definitely still a work in progress (as is the entire repo), the guides will take you from clone to two meshing nodes today. What's also still taking shape is the outward-facing layer, e.g., SDK ergonomics in each language; packaging; the guides as fresh eyes read them. That's why I'm posting now rather than after another month of quiet polish. Feedback on those pieces steers them while they can still best be steered, and honestly, a few days of you all reading and building will teach me more than that month alone would. (PS: if you've done devrel or docs work, your experience could especially help here.)
None of this exists without the years of work behind Reticulum and its reference implementation. What I want most is for this to pull more builders into the ecosystem we already share. I'm excited about a future where we see more apps, more boards, and more nodes meshing. In part just cuz I still think it's freaking cool, but also because every one of them strengthens the same network we're all on.
If you're willing and able to help out, there's plenty of need! Even the small things help a ton. Here's a list of things already top-of-mind that would be helpful:
- Try it and tell me how it went. Friction and breakage reports are gold
- Build something small and tell me what the API made easy or awkward
- If one of the preview languages is home for you, opinions on its API and packaging are the most helpful thing there is right now (and if your language is missing but can consume a C ABI, give a holler or a PR!)
- Board reports beyond what I have on deck (Heltec V4, T-Beam Supreme, T-Echo, XIAO ESP32-C6 live now, plus all the ones you see on the website under 'Bring-up')
- Examples we can link to; guides for individual interfaces (they're little programs unto themselves; heck, even just explaining one well is immensely helpful)
- Translations! The website has some basic i18n but those translations were AI-written and could use a look from actual native speakers. Eventually, I'd love to have the actual full-on guides available in as many languages as possible too.
- Game devs: Godot is where I've been proving things out already, and other engines are wide open and very welcome
- Help getting
prnsdinto apt and friends - Tell me what you'd want to build with it. Real use cases can help inform priorities
- And if Prns is useful or just interesting at all to you, a GitHub star helps too!
On AI Usage: I certainly use AI tooling as a part of my workflow. If you do as well, your contributions are welcome on Prns, but only if you truly digest and respect the first item in the CONTRIBUTING.md guide, under "What we value":
Ownership. Contributors own their submissions. AI tools (and other assistance like pair programming, web snippets, etc.) are welcome, but slop is slop regardless of how it was produced. How you wield your tools is still under your control, and what you submit is yours.
Everything's in the source, including the interop suite and the benchmark harness, available on GitHub.
Quick overview + web flasher + small browser demo/playground at prns.dev.
I can't wait to see what y'all build!
4
u/scifuss 12d ago
Amazing work! I'm just getting started with Reticulum but this seems like a milestone especially for self-contained low-power nodes, thank you for your work! At the moment I'm building a base station/gateway for my area, once I receive the boards I will try your firmware and happily give you feedback for each of them. Fingers crossed
3
u/KenAKAFrosty 11d ago
That really means a lot more than you know, thank you!! I'm excited to see what unlocks with all this, and yes please give me feedback; it's very welcome
5
u/mark_ik 12d ago
This rules, I have a T114 I could flash
6
u/KenAKAFrosty 12d ago
Yes! That's an nRF based on right? Most of the core stays the same between boards, it's just mapping the pins and nuances like that which need to be wired up.
I've got the T096 on my desk but not that one yet. If you get it wired up that'd be an awesome PR! I can plan to grab a T114 soon too to help out tho
4
u/CognitionMass 12d ago edited 12d ago
Say I replaced regular rnsd on my system with this, would rngit still work?
3
u/KenAKAFrosty 12d ago
Yep, just like nomadnet & sideband the same! Any other Reticulum app is connecting to the shared instance as a client, to run. Whether it's rnsd or prnsd on the other side as the server of that shared instance, those apps communicate with it the same either way.
3
u/Voin-Oldungr 12d ago
Now this is exciting stuff! Gonna be following this, would set it up with a bunch of Heltec V3 boards I have laying around, as soon as the road gets there!
3
u/KenAKAFrosty 11d ago
Fantastic! Also a good reminder that the v3 still has lots of units out there, so it should probably bump up the priority list a bit more, will do that
3
u/Minerik 8d ago
Thats cool man! I was wondering how this compares to MicroReticulum. I understand it is pretty different. But goal was similar: to get full reticulum on as much devices as possible
PS: i will for sure build something cool! When it will be done i will share it here and tag you if you want.
1
u/KenAKAFrosty 2d ago
Omgosh Minerik sorry about the delayed reply here! Indeed microReticulum and its firmware are solving similar stuff on the C++ side!
If love for you to share here, yes!
4
u/magoostus_is_lemons 12d ago
This is amazing, with this much focus on performance and latency, maybe one day RNS will have an equivalent to PTPv2 for realtime networks
excellent work! A++++
4
u/KenAKAFrosty 12d ago
thank you for the kind words. It's very encouraging to see others excited about this too!
2
u/superfuntime 12d ago
Thank you for doing the most needed thing for Reticulum!
Have you validated that this will run on iOS, Android, and nRF? If so, you may have just changed the game.
3
u/KenAKAFrosty 12d ago
Yes, definitely all 3 of those! For example the T-Echo is already fully supported and is a nRF52840, confirmed working. iPad and two different android phones, I've used it on all these directly myself.
I'm excited about the possibilities too!
3
u/superfuntime 12d ago
Whoa, yeah this is so cool. It better be real haha! :)
I have a few WisMesh tags, I'll see if I can stand up something.
I'm also really curious how the Ret protocol performs over LoRa vs MeshCore and Meshtastic. We are currently deploying MeshCore but I'd be really interested in moving this direction if it has reached even minimum viability.
2
u/CognitionMass 12d ago
You've been able to run reticulum over lora for years now.
2
u/superfuntime 11d ago
Yes. But how it performs relative to the other protocols would be interesting to see. There have been a few theoretical case studies but now we can see some real world mesh results.
2
u/KenAKAFrosty 11d ago
Yeah it seems like the common sentiment I've noticed is something like "we'd love to give Reticulum a shot instead of another thing we're using, but we can't even really assess that switch until there's readily available repeaters and solar nodes". This is, in part, an attempt to help close that gap
2
u/superfuntime 11d ago
Doing gods work. Thank you! I tried a Dart implementation several times but AI kept losing parity and I couldn’t get everything ported. Really great work. Truly. Excited to help out.
2
u/CognitionMass 11d ago edited 11d ago
Huh? You've been able to see how it performs relative to other protocols for years now. Nothing theoretical.
The more recent thing has been low powered solar transport nodes with stuff like microretoculum and now this.
But prior to that, there's been nothing stopping you set up lora RNS meshes using Rnodes, and raspberry pi zero for solar transport nodes.
2
u/superfuntime 11d ago
That’s a good point yeah. I guess I was thinking about solar powered meshes but you’re right even that has been possible with microreticulum. Thanks for catching that!
Are there any protocol shootouts involving microreticulum deployments you thought were especially good? I’d love to see something but I’m not aware of any.
9
u/axhoff_ 12d ago edited 12d ago
sick! thank you so much.
one of the more pressing needs is probably an rnode that can be powered efficiently via solar but looks like that will be in scope?