2.7 KiB
Reticulum Synthesis
A simple program to generate and run random topologies of Reticulum networks on local UDP.
The purpose is to test routing and applications easily.
You can contact tuxmain on the Reticulum Matrix channel for any request.
Development status: Early development, just for fun, to tinker with Reticulum and learn about mesh networks.
Build
cargo build --release
./target/release/reticulum-synthesis --help
Python and rnsd must already be installed (and in PATH), see Reticulum's manual.
Use
Generate and run 10 local Reticulum nodes:
reticulum-synthesis -d /tmp/test -n 10 --gen --run
Option --gen (or -g) generates the network graph and creates the directories and config files as subdirectories in the directory passed to -d. Subdirectories are named from n0 to n9 in the example.
Option --run (or -r) runs the generated nodes using rnsd. (tries to run for any subdirectory in the directory passed to -d)
The network can then be tested using RNS tools: (from reticulum repository)
$ python Examples/Announce.py --config /tmp/test/n5
[2025-10-11 11:04:43] [Notice] Announce example running, hit enter to manually send an announce (Ctrl-C to quit)
[2025-10-11 11:04:45] [Notice] Sent announce from <0e1fb61e3b38e332868b331740642f41> (example_utilities.announcesample.fruits.dd5be4f7c7547eaa41f654f75005ea36)
[2025-10-11 11:04:45] [Notice] Sent announce from <e733d5322f4f80a26a41c20d77fa89c8> (example_utilities.announcesample.noble_gases.dd5be4f7c7547eaa41f654f75005ea36)
# In another terminal:
$ python RNS/Utilities/rnpath.py --config /tmp/test/n10 0e1fb61e3b38e332868b331740642f41
Path found, destination <0e1fb61e3b38e332868b331740642f41> is 4 hops away via <11d3d5adc157e01df45660569a40b458> on UDPInterface[e10_33/127.0.0.1:42182]
For now, UDP ports are allocated to links in order from 42000 to 65535.
License
GNU AGPL v3, CopyLeft 2025 Pascal Engélibert (why copyleft?)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.