mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-26 15:30:18 +00:00
Compare commits
6 Commits
3d6e7a9597
...
3482d84bc0
Author | SHA1 | Date | |
---|---|---|---|
|
3482d84bc0 | ||
|
51c5c85fcd | ||
|
57aeab43a2 | ||
|
92cccddaab | ||
|
3de182192a | ||
|
aca6b0c110 |
36
README.md
36
README.md
@ -62,6 +62,11 @@ For more info, see [unsigned.io/projects/reticulum](https://unsigned.io/projects
|
|||||||
- Total bandwidth cost of setting up an encrypted link is 3 packets totaling 297 bytes
|
- Total bandwidth cost of setting up an encrypted link is 3 packets totaling 297 bytes
|
||||||
- Low cost of keeping links open at only 0.44 bits per second
|
- Low cost of keeping links open at only 0.44 bits per second
|
||||||
|
|
||||||
|
## Development Roadmap
|
||||||
|
While Reticulum is already a fully featured and functional networking stack, many improvements and additions are planned for the future.
|
||||||
|
|
||||||
|
To learn more about the direction and future of Reticulum, please see the [Development Roadmap](./Roadmap.md).
|
||||||
|
|
||||||
## Examples of Reticulum Applications
|
## Examples of Reticulum Applications
|
||||||
If you want to quickly get an idea of what Reticulum can do, take a look at the
|
If you want to quickly get an idea of what Reticulum can do, take a look at the
|
||||||
following resources.
|
following resources.
|
||||||
@ -177,37 +182,6 @@ features are implemented and functioning, but additions will probably occur as
|
|||||||
real-world use is explored. There will be bugs. The API and wire-format can be
|
real-world use is explored. There will be bugs. The API and wire-format can be
|
||||||
considered relatively stable at the moment, but could change if warranted.
|
considered relatively stable at the moment, but could change if warranted.
|
||||||
|
|
||||||
## Development Roadmap
|
|
||||||
- Improving [the manual](https://markqvist.github.io/Reticulum/manual/) with sections specifically for beginners
|
|
||||||
- Performance and memory optimisations
|
|
||||||
- Utilities for managing identities, signing and encryption
|
|
||||||
- User friendly interface configuration tool
|
|
||||||
- More interface types for even broader compatibility
|
|
||||||
- Plain ESP32 devices (ESP-Now, WiFi, Bluetooth, etc.)
|
|
||||||
- More LoRa transceivers
|
|
||||||
- IR Transceivers
|
|
||||||
- OpenWRT support
|
|
||||||
- Metric-based path selection
|
|
||||||
- Distributed Destination Naming System
|
|
||||||
- Network-wide path balancing
|
|
||||||
- Globally routable multicast
|
|
||||||
- Bindings for other programming languages
|
|
||||||
- Multiple paths in path table for quick recovery on link failures
|
|
||||||
- A portable Reticulum implementation in C, see [#21](https://github.com/markqvist/Reticulum/discussions/21)
|
|
||||||
- Easy way to share interface configurations, see [#19](https://github.com/markqvist/Reticulum/discussions/19)
|
|
||||||
- More interface types
|
|
||||||
- AT-compatible modems
|
|
||||||
- Optical mediums
|
|
||||||
- AWDL / OWL
|
|
||||||
- HF Modems
|
|
||||||
- CAN-bus
|
|
||||||
- ZeroMQ
|
|
||||||
- MQTT
|
|
||||||
- XBee
|
|
||||||
- SPI
|
|
||||||
- i²c
|
|
||||||
- Tor
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
The installation of the default `rns` package requires the dependencies listed
|
The installation of the default `rns` package requires the dependencies listed
|
||||||
below. Almost all systems and distributions have readily available packages for
|
below. Almost all systems and distributions have readily available packages for
|
||||||
|
97
Roadmap.md
Normal file
97
Roadmap.md
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
# Reticulum Development Roadmap
|
||||||
|
The development path for Reticulum is currently laid out in five distinct areas: *Comprehensibility*, *Universality*, *Functionality*, *Usability & Utility* and *Interfaceability*. Conceptualising the development of Reticulum into these areas serves to advance the implementation and work towards the Foundational Goals & Values of Reticulum.
|
||||||
|
|
||||||
|
## Comprehensibility
|
||||||
|
These efforts are aimed at improving the ease of which Reticulum is understood, and lowering the barrier to entry for people who wish to start building systems on Reticulum.
|
||||||
|
|
||||||
|
- Improving [the manual](https://markqvist.github.io/Reticulum/manual/) with tutorials specifically for beginners
|
||||||
|
- Updating the documentation to reflect recent changes and improvements
|
||||||
|
- Update descriptions of protocol mechanics
|
||||||
|
- Update announce description
|
||||||
|
- Add in-depth explanation of the IFAC system
|
||||||
|
- Software
|
||||||
|
- Update Sideband screenshots
|
||||||
|
- Update Sideband description
|
||||||
|
- Update NomadNet screenshots
|
||||||
|
- Update Sideband screenshots
|
||||||
|
- Installation
|
||||||
|
- Install docs for fedora, needs `python3-netifaces`
|
||||||
|
- Add a *Reticulum On Raspberry Pi* section
|
||||||
|
- Update *Reticulum On Android* section if necessary
|
||||||
|
- Update Android install documentation.
|
||||||
|
- Communications hardware section
|
||||||
|
- Add information about RNode external displays.
|
||||||
|
- Packet radio modems.
|
||||||
|
- Possibly add other relevant types here as well.
|
||||||
|
- Setup *Best Practices For...* / *Installation Examples* section.
|
||||||
|
- Home or office (example)
|
||||||
|
- Vehicles (example)
|
||||||
|
- No-grid/solar/remote sites (example)
|
||||||
|
|
||||||
|
## Universality
|
||||||
|
These efforts seek to broaden the universality of the Reticulum software and hardware ecosystem by continously diversifying platform support, and by improving the overall availability and ease of deployment of the Reticulum stack.
|
||||||
|
|
||||||
|
- OpenWRT support
|
||||||
|
- Create a standalone RNS Daemon app for Android
|
||||||
|
- A lightweight and portable C implementation for microcontrollers, µRNS
|
||||||
|
- A portable, high-performance Reticulum implementation in C/C++, see [#21](https://github.com/markqvist/Reticulum/discussions/21)
|
||||||
|
- Performance and memory optimisations of the Python implementation
|
||||||
|
- Bindings for other programming languages
|
||||||
|
|
||||||
|
## Functionality
|
||||||
|
These efforts aim to expand and improve the core functionality and reliability of Reticulum.
|
||||||
|
|
||||||
|
- Improve storage persist call on local client connect/disconnect
|
||||||
|
- Faster path invalidation on physical topography changes
|
||||||
|
- Better path invalidation on roaming interfaces
|
||||||
|
- Network-wide path balancing
|
||||||
|
- Distributed Destination Naming System
|
||||||
|
- Globally routable multicast
|
||||||
|
- Destination proxying: Create a new random destination, and sign it with the original destination to create verifiable ephemeral destinations. This could actually be a very powerful feature for aggregating routes in the network, and it retains destination owners control over how they are routed
|
||||||
|
- [Metric-based path selection and multiple paths](https://github.com/markqvist/Reticulum/discussions/86)
|
||||||
|
|
||||||
|
## Usability & Utility
|
||||||
|
These effors seek to make Reticulum easier to use and operate, and to expand the utility of the stack on deployed systems.
|
||||||
|
|
||||||
|
- Add bluetooth pairing code output to rnodeconf
|
||||||
|
- Easy way to share interface configurations, see [#19](https://github.com/markqvist/Reticulum/discussions/19)
|
||||||
|
- Transit traffic display in rnstatus
|
||||||
|
- JSON output mode for rnstatus
|
||||||
|
- rnid utility
|
||||||
|
- rnsign utility
|
||||||
|
- rncrypt utility
|
||||||
|
- rnsconfig utility
|
||||||
|
- Expand rnx utility to true interactive remote shell
|
||||||
|
|
||||||
|
## Interfaceability
|
||||||
|
These efforts aim to expand the types of physical and virtual interfaces that Reticulum can natively use to transport data.
|
||||||
|
|
||||||
|
- Filesystem interface
|
||||||
|
- Plain ESP32 devices (ESP-Now, WiFi, Bluetooth, etc.)
|
||||||
|
- More LoRa transceivers
|
||||||
|
- AT-compatible modems
|
||||||
|
- Direct SDR Support
|
||||||
|
- Optical mediums
|
||||||
|
- IR Transceivers
|
||||||
|
- AWDL / OWL
|
||||||
|
- HF Modems
|
||||||
|
- GNU Radio
|
||||||
|
- CAN-bus
|
||||||
|
- Raw SPI
|
||||||
|
- Raw i²c
|
||||||
|
- MQTT
|
||||||
|
- XBee
|
||||||
|
- Tor
|
||||||
|
|
||||||
|
## Active Work Areas
|
||||||
|
For each release cycle of Reticulum, improvements and additions from the five areas are selected as active work areas, and can be expected to be included in the next release. While not entirely set in stone for each release cycle, they serve as a pointer of what to expect in the next release.
|
||||||
|
|
||||||
|
- Version `0.4.2` targets:
|
||||||
|
- [ ] Updating the documentation to reflect recent changes and improvements
|
||||||
|
- [ ] Add bluetooth pairing code output to rnodeconf
|
||||||
|
- [ ] Improve storage persist call on every local client connect/disconnect
|
||||||
|
- [ ] JSON output mode for rnstatus
|
||||||
|
- [ ] rnid utility
|
||||||
|
- [ ] rnsign utility
|
||||||
|
- [ ] rncrypt utility
|
||||||
|
- [ ] Create a standalone RNS Daemon app for Android
|
Binary file not shown.
Loading…
Reference in New Issue
Block a user