mirror of
https://github.com/markqvist/Reticulum.git
synced 2024-11-22 21:50:18 +00:00
Updated documentation
This commit is contained in:
parent
02945f960d
commit
006c70cd09
@ -86,17 +86,21 @@ Reticulum implements a range of generalised interface types that covers most of
|
|||||||
## Dependencies:
|
## Dependencies:
|
||||||
- Python 3.6
|
- Python 3.6
|
||||||
- cryptography.io
|
- cryptography.io
|
||||||
|
- netifaces
|
||||||
|
- pyserial
|
||||||
|
|
||||||
## How do I get started?
|
## How do I get started?
|
||||||
The best way to get started with the Reticulum Network Stack depends on what
|
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](https://markqvist.github.io/Reticulum/manual/gettingstartedfast.html) section of the [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).
|
you want to do. For full details and examples, have a look at the [Getting Started Fast](https://markqvist.github.io/Reticulum/manual/gettingstartedfast.html) section of the [Reticulum Manual](https://markqvist.github.io/Reticulum/manual/).
|
||||||
|
|
||||||
If you just need Reticulum as a dependency for another application, the easiest way is via pip:
|
To simply install Reticulum and related utilities on your system, the easiest way is via pip:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pip3 install rns
|
pip3 install rns
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You can then start any program that uses Reticulum, or start Reticulum as a system daemon with [the rnsd utility](https://markqvist.github.io/Reticulum/manual/using.html#the-rnsd-utility).
|
||||||
|
|
||||||
The default config file contains examples for using Reticulum with LoRa transceivers (specifically [RNode](https://unsigned.io/projects/rnode/)), packet radio TNCs/modems and UDP. By default a UDP interface is already enabled in the default config, which will enable Reticulum communication in your local ethernet broadcast domain.
|
The default config file contains examples for using Reticulum with LoRa transceivers (specifically [RNode](https://unsigned.io/projects/rnode/)), packet radio TNCs/modems and UDP. By default a UDP interface is already enabled in the default config, which will enable Reticulum communication in your local ethernet broadcast domain.
|
||||||
|
|
||||||
You can use the examples in the config file to expand communication over other mediums such as packet radio or LoRa, or over fast IP links using the UDP interface. I'll add in-depth tutorials and explanations on these topics later. For now, the included examples will hopefully be enough to get started.
|
You can use the examples in the config file to expand communication over other mediums such as packet radio or LoRa, or over fast IP links using the UDP interface. I'll add in-depth tutorials and explanations on these topics later. For now, the included examples will hopefully be enough to get started.
|
||||||
|
@ -280,8 +280,8 @@ class Reticulum:
|
|||||||
discovery_scope = c["discovery_scope"] if "discovery_scope" in c else None
|
discovery_scope = c["discovery_scope"] if "discovery_scope" in c else None
|
||||||
discovery_port = int(c["discovery_port"]) if "discovery_port" in c else None
|
discovery_port = int(c["discovery_port"]) if "discovery_port" in c else None
|
||||||
data_port = int(c["data_port"]) if "data_port" in c else None
|
data_port = int(c["data_port"]) if "data_port" in c else None
|
||||||
allowed_interfaces = c.as_list("interfaces") if "interfaces" in c else None
|
allowed_interfaces = c.as_list("devices") if "devices" in c else None
|
||||||
ignored_interfaces = c.as_list("ignored_interfaces") if "ignored_interfaces" in c else None
|
ignored_interfaces = c.as_list("ignored_devices") if "ignored_devices" in c else None
|
||||||
|
|
||||||
interface = AutoInterface.AutoInterface(
|
interface = AutoInterface.AutoInterface(
|
||||||
RNS.Transport,
|
RNS.Transport,
|
||||||
|
@ -131,6 +131,22 @@ When you have experimented with the basic examples, it's time to go read the
|
|||||||
:ref:`Understanding Reticulum<understanding-main>` chapter.
|
:ref:`Understanding Reticulum<understanding-main>` chapter.
|
||||||
|
|
||||||
|
|
||||||
|
Reticulum on ARM64
|
||||||
|
==============================================
|
||||||
|
On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
|
binaries. On such systems, you will need to install ``python3-dev`` before
|
||||||
|
installing Reticulum or programs that depend on Reticulum.
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# Install Python and development packages
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install python3 python3-pip python3-dev
|
||||||
|
|
||||||
|
# Install Reticulum
|
||||||
|
python3 -m pip install rns
|
||||||
|
|
||||||
|
|
||||||
Reticulum on Android
|
Reticulum on Android
|
||||||
==============================================
|
==============================================
|
||||||
Reticulum can be used on Android in different ways. The easiest way to get
|
Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
|
@ -26,7 +26,7 @@ Auto Interface
|
|||||||
The Auto Interface enables communication with other discoverable Reticulum
|
The Auto Interface enables communication with other discoverable Reticulum
|
||||||
nodes over UDP. It does not need any functional IP infrastructure like
|
nodes over UDP. It does not need any functional IP infrastructure like
|
||||||
routers or DHCP servers, but will require at least some sort of switching
|
routers or DHCP servers, but will require at least some sort of switching
|
||||||
medium between peers (a wired switch, a WiFi access point or similar), and
|
medium between peers (a wired switch, a hub, a WiFi access point or similar), and
|
||||||
that link-local IPv6 is enabled in your operating system, which should be
|
that link-local IPv6 is enabled in your operating system, which should be
|
||||||
enabled by default in almost all OSes.
|
enabled by default in almost all OSes.
|
||||||
|
|
||||||
@ -47,6 +47,17 @@ enabled by default in almost all OSes.
|
|||||||
|
|
||||||
group_id = reticulum
|
group_id = reticulum
|
||||||
|
|
||||||
|
# You can also select specifically which
|
||||||
|
# kernel networking devices to use.
|
||||||
|
|
||||||
|
devices = wlan0,eth1
|
||||||
|
|
||||||
|
# Or let AutoInterface use all suitable
|
||||||
|
# devices except for a list of ignored ones.
|
||||||
|
|
||||||
|
ignored_devices = tun0,eth0
|
||||||
|
|
||||||
|
|
||||||
If you are connected to the Internet with IPv6, and your provider will route
|
If you are connected to the Internet with IPv6, and your provider will route
|
||||||
IPv6 multicast, you can potentially configure the Auto Interface to globally
|
IPv6 multicast, you can potentially configure the Auto Interface to globally
|
||||||
autodiscover other Reticulum nodes within your selected Group ID. You can specify
|
autodiscover other Reticulum nodes within your selected Group ID. You can specify
|
||||||
|
@ -57,6 +57,7 @@ the same system.
|
|||||||
-q, --quiet
|
-q, --quiet
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
|
|
||||||
|
You can easily add ``rnsd`` as an always-on service by :ref:`configuring a service<using-systemd>`.
|
||||||
|
|
||||||
The rnstatus Utility
|
The rnstatus Utility
|
||||||
====================
|
====================
|
||||||
@ -205,6 +206,7 @@ Using this methodology avoids potential naming mix-ups where physical devices
|
|||||||
might be plugged and unplugged in different orders, or when node name
|
might be plugged and unplugged in different orders, or when node name
|
||||||
assignment varies from one boot to another.
|
assignment varies from one boot to another.
|
||||||
|
|
||||||
|
.. _using-systemd:
|
||||||
|
|
||||||
Reticulum as a System Service
|
Reticulum as a System Service
|
||||||
=============================
|
=============================
|
||||||
|
@ -148,6 +148,20 @@ don’t use pip, but try this recipe:</p>
|
|||||||
<p>When you have experimented with the basic examples, it’s time to go read the
|
<p>When you have experimented with the basic examples, it’s time to go read the
|
||||||
<a class="reference internal" href="understanding.html#understanding-main"><span class="std std-ref">Understanding Reticulum</span></a> chapter.</p>
|
<a class="reference internal" href="understanding.html#understanding-main"><span class="std std-ref">Understanding Reticulum</span></a> chapter.</p>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="section" id="reticulum-on-arm64">
|
||||||
|
<h2>Reticulum on ARM64<a class="headerlink" href="#reticulum-on-arm64" title="Permalink to this headline">¶</a></h2>
|
||||||
|
<p>On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
|
binaries. On such systems, you will need to install <code class="docutils literal notranslate"><span class="pre">python3-dev</span></code> before
|
||||||
|
installing Reticulum or programs that depend on Reticulum.</p>
|
||||||
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># Install Python and development packages</span>
|
||||||
|
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">update</span>
|
||||||
|
<span class="n">sudo</span> <span class="n">apt</span> <span class="n">install</span> <span class="n">python3</span> <span class="n">python3</span><span class="o">-</span><span class="n">pip</span> <span class="n">python3</span><span class="o">-</span><span class="n">dev</span>
|
||||||
|
|
||||||
|
<span class="c1"># Install Reticulum</span>
|
||||||
|
<span class="n">python3</span> <span class="o">-</span><span class="n">m</span> <span class="n">pip</span> <span class="n">install</span> <span class="n">rns</span>
|
||||||
|
</pre></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="section" id="reticulum-on-android">
|
<div class="section" id="reticulum-on-android">
|
||||||
<h2>Reticulum on Android<a class="headerlink" href="#reticulum-on-android" title="Permalink to this headline">¶</a></h2>
|
<h2>Reticulum on Android<a class="headerlink" href="#reticulum-on-android" title="Permalink to this headline">¶</a></h2>
|
||||||
<p>Reticulum can be used on Android in different ways. The easiest way to get
|
<p>Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
@ -201,6 +215,7 @@ here at a later point.</p>
|
|||||||
<li><a class="reference internal" href="#creating-a-network-with-reticulum">Creating a Network With Reticulum</a></li>
|
<li><a class="reference internal" href="#creating-a-network-with-reticulum">Creating a Network With Reticulum</a></li>
|
||||||
<li><a class="reference internal" href="#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
<li><a class="reference internal" href="#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
||||||
<li><a class="reference internal" href="#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
<li><a class="reference internal" href="#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
||||||
|
<li><a class="reference internal" href="#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
||||||
<li><a class="reference internal" href="#reticulum-on-android">Reticulum on Android</a></li>
|
<li><a class="reference internal" href="#reticulum-on-android">Reticulum on Android</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -58,6 +58,7 @@ to participate in the development of Reticulum itself.</p>
|
|||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#creating-a-network-with-reticulum">Creating a Network With Reticulum</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#creating-a-network-with-reticulum">Creating a Network With Reticulum</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#develop-a-program-with-reticulum">Develop a Program with Reticulum</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#participate-in-reticulum-development">Participate in Reticulum Development</a></li>
|
||||||
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-arm64">Reticulum on ARM64</a></li>
|
||||||
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-android">Reticulum on Android</a></li>
|
<li class="toctree-l2"><a class="reference internal" href="gettingstartedfast.html#reticulum-on-android">Reticulum on Android</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
@ -58,7 +58,7 @@ manual.</p>
|
|||||||
<p>The Auto Interface enables communication with other discoverable Reticulum
|
<p>The Auto Interface enables communication with other discoverable Reticulum
|
||||||
nodes over UDP. It does not need any functional IP infrastructure like
|
nodes over UDP. It does not need any functional IP infrastructure like
|
||||||
routers or DHCP servers, but will require at least some sort of switching
|
routers or DHCP servers, but will require at least some sort of switching
|
||||||
medium between peers (a wired switch, a WiFi access point or similar), and
|
medium between peers (a wired switch, a hub, a WiFi access point or similar), and
|
||||||
that link-local IPv6 is enabled in your operating system, which should be
|
that link-local IPv6 is enabled in your operating system, which should be
|
||||||
enabled by default in almost all OSes.</p>
|
enabled by default in almost all OSes.</p>
|
||||||
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a TCP server interface.</span>
|
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="c1"># This example demonstrates a TCP server interface.</span>
|
||||||
@ -75,6 +75,16 @@ enabled by default in almost all OSes.</p>
|
|||||||
<span class="c1"># specifying different Group IDs.</span>
|
<span class="c1"># specifying different Group IDs.</span>
|
||||||
|
|
||||||
<span class="n">group_id</span> <span class="o">=</span> <span class="n">reticulum</span>
|
<span class="n">group_id</span> <span class="o">=</span> <span class="n">reticulum</span>
|
||||||
|
|
||||||
|
<span class="c1"># You can also select specifically which</span>
|
||||||
|
<span class="c1"># kernel networking devices to use.</span>
|
||||||
|
|
||||||
|
<span class="n">devices</span> <span class="o">=</span> <span class="n">wlan0</span><span class="p">,</span><span class="n">eth1</span>
|
||||||
|
|
||||||
|
<span class="c1"># Or let AutoInterface use all suitable</span>
|
||||||
|
<span class="c1"># devices except for a list of ignored ones.</span>
|
||||||
|
|
||||||
|
<span class="n">ignored_devices</span> <span class="o">=</span> <span class="n">tun0</span><span class="p">,</span><span class="n">eth0</span>
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
<p>If you are connected to the Internet with IPv6, and your provider will route
|
<p>If you are connected to the Internet with IPv6, and your provider will route
|
||||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -87,6 +87,7 @@ optional arguments:
|
|||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
</pre></div>
|
</pre></div>
|
||||||
</div>
|
</div>
|
||||||
|
<p>You can easily add <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> as an always-on service by <a class="reference internal" href="#using-systemd"><span class="std std-ref">configuring a service</span></a>.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="the-rnstatus-utility">
|
<div class="section" id="the-rnstatus-utility">
|
||||||
<h3>The rnstatus Utility<a class="headerlink" href="#the-rnstatus-utility" title="Permalink to this headline">¶</a></h3>
|
<h3>The rnstatus Utility<a class="headerlink" href="#the-rnstatus-utility" title="Permalink to this headline">¶</a></h3>
|
||||||
@ -218,7 +219,7 @@ might be plugged and unplugged in different orders, or when node name
|
|||||||
assignment varies from one boot to another.</p>
|
assignment varies from one boot to another.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="reticulum-as-a-system-service">
|
<div class="section" id="reticulum-as-a-system-service">
|
||||||
<h3>Reticulum as a System Service<a class="headerlink" href="#reticulum-as-a-system-service" title="Permalink to this headline">¶</a></h3>
|
<span id="using-systemd"></span><h3>Reticulum as a System Service<a class="headerlink" href="#reticulum-as-a-system-service" title="Permalink to this headline">¶</a></h3>
|
||||||
<p>Instead of starting Reticulum manually, you can install <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> as a system
|
<p>Instead of starting Reticulum manually, you can install <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> as a system
|
||||||
service and have it start automatically at boot.</p>
|
service and have it start automatically at boot.</p>
|
||||||
<p>If you installed Reticulum with <code class="docutils literal notranslate"><span class="pre">pip</span></code>, the <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> program will most likely
|
<p>If you installed Reticulum with <code class="docutils literal notranslate"><span class="pre">pip</span></code>, the <code class="docutils literal notranslate"><span class="pre">rnsd</span></code> program will most likely
|
||||||
|
@ -131,6 +131,22 @@ When you have experimented with the basic examples, it's time to go read the
|
|||||||
:ref:`Understanding Reticulum<understanding-main>` chapter.
|
:ref:`Understanding Reticulum<understanding-main>` chapter.
|
||||||
|
|
||||||
|
|
||||||
|
Reticulum on ARM64
|
||||||
|
==============================================
|
||||||
|
On some architectures, including ARM64, not all dependencies have precompiled
|
||||||
|
binaries. On such systems, you will need to install ``python3-dev`` before
|
||||||
|
installing Reticulum or programs that depend on Reticulum.
|
||||||
|
|
||||||
|
.. code::
|
||||||
|
|
||||||
|
# Install Python and development packages
|
||||||
|
sudo apt update
|
||||||
|
sudo apt install python3 python3-pip python3-dev
|
||||||
|
|
||||||
|
# Install Reticulum
|
||||||
|
python3 -m pip install rns
|
||||||
|
|
||||||
|
|
||||||
Reticulum on Android
|
Reticulum on Android
|
||||||
==============================================
|
==============================================
|
||||||
Reticulum can be used on Android in different ways. The easiest way to get
|
Reticulum can be used on Android in different ways. The easiest way to get
|
||||||
|
@ -26,7 +26,7 @@ Auto Interface
|
|||||||
The Auto Interface enables communication with other discoverable Reticulum
|
The Auto Interface enables communication with other discoverable Reticulum
|
||||||
nodes over UDP. It does not need any functional IP infrastructure like
|
nodes over UDP. It does not need any functional IP infrastructure like
|
||||||
routers or DHCP servers, but will require at least some sort of switching
|
routers or DHCP servers, but will require at least some sort of switching
|
||||||
medium between peers (a wired switch, a WiFi access point or similar), and
|
medium between peers (a wired switch, a hub, a WiFi access point or similar), and
|
||||||
that link-local IPv6 is enabled in your operating system, which should be
|
that link-local IPv6 is enabled in your operating system, which should be
|
||||||
enabled by default in almost all OSes.
|
enabled by default in almost all OSes.
|
||||||
|
|
||||||
@ -47,6 +47,17 @@ enabled by default in almost all OSes.
|
|||||||
|
|
||||||
group_id = reticulum
|
group_id = reticulum
|
||||||
|
|
||||||
|
# You can also select specifically which
|
||||||
|
# kernel networking devices to use.
|
||||||
|
|
||||||
|
devices = wlan0,eth1
|
||||||
|
|
||||||
|
# Or let AutoInterface use all suitable
|
||||||
|
# devices except for a list of ignored ones.
|
||||||
|
|
||||||
|
ignored_devices = tun0,eth0
|
||||||
|
|
||||||
|
|
||||||
If you are connected to the Internet with IPv6, and your provider will route
|
If you are connected to the Internet with IPv6, and your provider will route
|
||||||
IPv6 multicast, you can potentially configure the Auto Interface to globally
|
IPv6 multicast, you can potentially configure the Auto Interface to globally
|
||||||
autodiscover other Reticulum nodes within your selected Group ID. You can specify
|
autodiscover other Reticulum nodes within your selected Group ID. You can specify
|
||||||
|
@ -57,6 +57,7 @@ the same system.
|
|||||||
-q, --quiet
|
-q, --quiet
|
||||||
--version show program's version number and exit
|
--version show program's version number and exit
|
||||||
|
|
||||||
|
You can easily add ``rnsd`` as an always-on service by :ref:`configuring a service<using-systemd>`.
|
||||||
|
|
||||||
The rnstatus Utility
|
The rnstatus Utility
|
||||||
====================
|
====================
|
||||||
@ -205,6 +206,7 @@ Using this methodology avoids potential naming mix-ups where physical devices
|
|||||||
might be plugged and unplugged in different orders, or when node name
|
might be plugged and unplugged in different orders, or when node name
|
||||||
assignment varies from one boot to another.
|
assignment varies from one boot to another.
|
||||||
|
|
||||||
|
.. _using-systemd:
|
||||||
|
|
||||||
Reticulum as a System Service
|
Reticulum as a System Service
|
||||||
=============================
|
=============================
|
||||||
|
Loading…
Reference in New Issue
Block a user