4.7 KiB
Get Started
The best way to get started with the Reticulum Network Stack depends on what you want to do. For full details and examples, have a look at the Getting Started Fast section of the Reticulum Manual.
Experimental Software
Please Know! Reticulum is still in beta. This means, that while it already works very well, and is very stable, there could very well still be critical bugs or flaws in the behaviour, privacy or security of the system as a whole. Use Reticulum if you are comfortable with this, and understand the implications.
Installation
To simply install Reticulum and related utilities on your system, the easiest way is via pip:
pip3 install rns
You can then start any program that uses Reticulum, or start Reticulum as a system service with the rnsd utility.
When first started, Reticulum will create a default configuration file, providing basic connectivity to other Reticulum peers that might be locally reachable. The default config file contains a few examples, and references for creating a more complex configuration.
For more detailed examples on how to expand communication over many mediums such as packet radio or LoRa, serial ports, or over fast IP links and the Internet using the UDP and TCP interfaces, take a look at the Supported Interfaces section of the Reticulum Manual.
Included Utilities
Reticulum includes a range of useful utilities for managing your networks, viewing status and information, and other tasks. You can read more about these programs in the Included Utility Programs section of the Reticulum Manual.
- The system daemon
rnsd
for running Reticulum as an always-available service - An interface status utility called
rnstatus
, that displays information about interfaces - The path lookup and and management tool
rnpath
letting you view and modify path tables - A diagnostics tool called
rnprobe
for checking connectivity to destinations - A simple file transfer program called
rncp
making it easy to copy files to remote systems - The remote command execution program
rnx
that let's you run commands and programs and retrieve output from remote systems
All tools, including rnx
and rncp
, work reliably and well even over very low-bandwidth links like LoRa or Packet Radio.
Dependencies
The installation of the default rns
package requires the dependencies listed below. Almost all systems and distributions have readily available packages for these dependencies, and when the rns
package is installed with pip
, they will be downloaded and installed as well.
On more unusual systems, and in some rare cases, it might not be possible to install or even compile one or more of the above modules. In such situations, you can use the rnspure
package instead, which require no external dependencies for installation. Please note that the contents of the rns
and rnspure
packages are identical. The only difference is that the rnspure
package lists no dependencies required for installation.
No matter how Reticulum is installed and started, it will load external dependencies only if they are needed and available. If for example you want to use Reticulum on a system that cannot support pyserial, it is perfectly possible to do so using the rnspure
package, but Reticulum will not be able to use serial-based interfaces. All other available modules will still be loaded when needed.
Please Note! If you use the rnspure
package to run Reticulum on systems that do not support PyCA/cryptography, it is important that you read and understand the Cryptographic Primitives section of this site.
Performance
Reticulum targets a very wide usable performance envelope, but prioritises functionality and performance over low-bandwidth mediums. The goal is to provide a dynamic performance envelope from 250 bits per second, to 1 gigabit per second on normal hardware.
Currently, the usable performance envelope is approximately 500 bits per second to 20 megabits per second, with physical mediums faster than that not being saturated. Performance beyond the current level is intended for future upgrades, but not highly prioritised until the wire format and API has been locked in.