diff --git a/docs/Reticulum Manual.epub b/docs/Reticulum Manual.epub
index a0848d9..b0dffac 100644
Binary files a/docs/Reticulum Manual.epub and b/docs/Reticulum Manual.epub differ
diff --git a/docs/Reticulum Manual.pdf b/docs/Reticulum Manual.pdf
index 8b1b407..a5a426e 100644
Binary files a/docs/Reticulum Manual.pdf and b/docs/Reticulum Manual.pdf differ
diff --git a/docs/manual/_images/columba.webp b/docs/manual/_images/columba.webp
new file mode 100644
index 0000000..956ea8e
Binary files /dev/null and b/docs/manual/_images/columba.webp differ
diff --git a/docs/manual/_images/lxst_phone.webp b/docs/manual/_images/lxst_phone.webp
new file mode 100644
index 0000000..697359a
Binary files /dev/null and b/docs/manual/_images/lxst_phone.webp differ
diff --git a/docs/manual/_images/meshchatx.webp b/docs/manual/_images/meshchatx.webp
new file mode 100644
index 0000000..24fd7ba
Binary files /dev/null and b/docs/manual/_images/meshchatx.webp differ
diff --git a/docs/manual/_images/rbrowser.webp b/docs/manual/_images/rbrowser.webp
new file mode 100644
index 0000000..e717d2b
Binary files /dev/null and b/docs/manual/_images/rbrowser.webp differ
diff --git a/docs/manual/_images/retibbs.webp b/docs/manual/_images/retibbs.webp
new file mode 100644
index 0000000..5695b9f
Binary files /dev/null and b/docs/manual/_images/retibbs.webp differ
diff --git a/docs/manual/_images/rnphone.webp b/docs/manual/_images/rnphone.webp
new file mode 100644
index 0000000..10bf686
Binary files /dev/null and b/docs/manual/_images/rnphone.webp differ
diff --git a/docs/manual/_sources/gettingstartedfast.rst.txt b/docs/manual/_sources/gettingstartedfast.rst.txt
index 28caf4b..04d40b8 100644
--- a/docs/manual/_sources/gettingstartedfast.rst.txt
+++ b/docs/manual/_sources/gettingstartedfast.rst.txt
@@ -66,106 +66,10 @@ compiled packages available.
Try Using a Reticulum-based Program
=============================================
-If you simply want to try using a program built with Reticulum, a few different
-programs exist that allow basic communication and a range of other useful functions,
+If you simply want to try using a program built with Reticulum, a :ref:`range of different
+programs ` exist that allow basic communication and a various other useful functions,
even over extremely low-bandwidth Reticulum networks.
-These programs will let you get a feel for how Reticulum works. They have been designed
-to run well over networks based on LoRa or packet radio, but can also be used over fast
-links, such as local WiFi, wired Ethernet, the Internet, or any combination.
-
-As such, it is easy to get started experimenting, without having to set up any radio
-transceivers or infrastructure just to try it out. Launching the programs on separate
-devices connected to the same WiFi network is enough to get started, and physical
-radio interfaces can then be added later.
-
-Remote Shell
-^^^^^^^^^^^^
-
-The `rnsh `_ program lets you establish fully interactive
-remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
-remote system, and is similar to how ``ssh`` works. The ``rnsh`` is very efficient, and
-can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
-such as LoRa or packet radio.
-
-Nomad Network
-^^^^^^^^^^^^^
-
-The terminal-based program `Nomad Network `_
-provides a complete encrypted communications suite built with Reticulum. It features
-encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
-and has a built-in text-browser and page server with support for dynamically rendered pages,
-user authentication and more.
-
-.. image:: screenshots/nomadnet_3.png
- :target: _images/nomadnet_3.png
-
-`Nomad Network `_ is a user-facing client
-for the messaging and information-sharing protocol
-`LXMF `_, another project built with Reticulum.
-
-You can install Nomad Network via pip:
-
-.. code::
-
- # Install ...
- pip install nomadnet
-
- # ... and run
- nomadnet
-
-.. note::
- If this is the very first time you use ``pip`` to install a program
- on your system, you might need to reboot your system for your program to become
- available. If you get a "command not found" error or similar when running the
- program, reboot your system and try again. In some cases, you may even need to
- manually add the ``pip`` install path to your ``PATH`` environment variable.
-
-Sideband
-^^^^^^^^
-
-If you would rather use a program with a graphical user interface, you can take
-a look at `Sideband `_, which is available for Android,
-Linux, macOS and Windows.
-
-.. only:: html
-
- .. image:: screenshots/sideband_devices.webp
- :align: center
- :target: _images/sideband_devices.webp
-
-.. only:: latex
-
- .. image:: screenshots/sideband_devices.png
- :align: center
- :target: _images/sideband_devices.png
-
-Sideband allows you to communicate with other people or LXMF-compatible
-systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
-Paper Messages, or anything else Reticulum supports. It also interoperates with
-the Nomad Network program.
-
-MeshChat
-^^^^^^^^
-
-The `Reticulum MeshChat `_ application
-is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
-page browser and other interesting functionality.
-
-.. only:: html
-
- .. image:: screenshots/meshchat_1.webp
- :align: center
- :target: _images/meshchat_1.webp
-
-.. only:: latex
-
- .. image:: screenshots/meshchat_1.png
- :align: center
- :target: _images/meshchat_1.png
-
-Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
-any other LXMF client.
Using the Included Utilities
=============================================
@@ -214,45 +118,11 @@ network just using the default (:ref:`AutoInterface`) configura
Possibly, the examples in the config file are enough to get you started. If
you want more information, you can read the :ref:`Building Networks`
-and :ref:`Interfaces` chapters of this manual.
+and :ref:`Interfaces` chapters of this manual, but most importantly,
+start with reading the next section, :ref:`Bootstrapping Connectivity`,
+as this provides the most essential understanding of how to ensure reliable
+connectivity with a minimum of maintenance.
-Connecting Reticulum Instances Over the Internet
-================================================
-Reticulum currently offers three interfaces suitable for connecting instances over the Internet: :ref:`Backbone`, :ref:`TCP`
-and :ref:`I2P`. Each interface offers a different set of features, and Reticulum
-users should carefully choose the interface which best suites their needs.
-
-The ``TCPServerInterface`` allows users to host an instance accessible over TCP/IP. This
-method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
-however it also leaks more data about the server host.
-
-The ``BackboneInterface`` is a very fast and efficient interface type available on POSIX operating
-systems, designed to handle many hundreds of connections simultaneously with low memory, processing
-and I/O overhead. It is fully compatible with the TCP-based interface types.
-
-TCP connections reveal the IP address of both your instance and the server to anyone who can
-inspect the connection. Someone could use this information to determine your location or identity. Adversaries
-inspecting your packets may be able to record packet metadata like time of transmission and packet size.
-Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
-packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
-Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
-which most Internet connections don't offer anymore.
-
-The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
-(I2P) `_. To use this interface, users must also run an I2P daemon in
-parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd `_.
-
-By default, I2P will encrypt and mix all traffic sent over the Internet, and
-hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
-will also relay other I2P user's encrypted packets, which will use extra
-bandwidth and compute power, but also makes timing attacks and other forms of
-deep-packet-inspection much more difficult.
-
-I2P also allows users to host globally available Reticulum instances from non-public IP's and behind firewalls and NAT.
-
-In general it is recommended to use an I2P node if you want to host a publicly accessible
-instance, while preserving anonymity. If you care more about performance, and a slightly
-easier setup, use TCP.
.. _bootstrapping-connectivity:
@@ -271,17 +141,20 @@ There is no "right" or "wrong" way to build a Reticulum network, and you don't n
Finding Your Way
^^^^^^^^^^^^^^^^
-When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with. This is the process of **bootstrapping**.
+When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with; the process of *bootstrapping connectivity*.
-A common mistake in modern networking is the reliance on a few centralized, hard-coded entrypoints. If every user simply connects to the same list of public IP addresses found on a website, the network becomes brittle, centralized, and ultimately fails to deliver on the promise of decentralization.
+.. important::
+
+ A common mistake in modern networking is the reliance on a few centralized, hard-coded entrypoints. If every user simply connects to the same list of public IP addresses found on a website, the network becomes brittle, centralized, and ultimately fails to deliver on the promise of decentralization.
-Reticulum encourages the approach of *organic growth*. Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to *discover* better, more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
+Reticulum encourages the approach of *organic growth*. Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to continously *discover* more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
It *is* possible to simply add a few public entrypoints to the ``[interfaces]`` section of your Reticulum configuration and be connected, but a better option is to enable :ref:`interface discovery` and either manually select relevant, local interfaces, or enable discovered interface auto-connection.
A relevant option in this context is the :ref:`bootstrap only` interface option. This is an automated tool for better distributing connectivity. By enabling interface discovery and auto-connection, and marking an interface as ``bootstrap_only``, you tell Reticulum to use that interface primarliy to find connectivity options, and then disconnect it once sufficient entrypoints have been discovered. This helps create a network topology that favors locality and resilience over the simple centralization caused by using only a few static entrypoints.
-A good place to find interface definitions for bootstrapping connectivity is `rmap.world `_.
+Good places to find interface definitions for bootstrapping connectivity are websites like
+`directory.rns.recipes `_ and `rmap.world `_.
Building Personal Infrastructure
@@ -326,55 +199,27 @@ If you have the means to host a stable node with a public IP address, consider b
For guidelines on how to properly configure and secure a public gateway, refer to the :ref:`Hosting Public Entrypoints` section.
-Connect to the Public Testnet
-=============================
+Connect to the Distributed Backbone
+===================================
-An experimental public testnet has been made accessible by volunteers in the community. You
-can find interface definitions for adding to your ``.reticulum/config`` file on the
-`Reticulum Website `_, or the
-`Community Wiki `_.
-
-As development of Reticulum has transitioned away from the public Internet, and is now happening exclusively over Reticulum itself, the lists on the `Reticulum Website `_ and the
-`Community Wiki `_ are no longer actively maintained, and any up-to-date connectivity information will have to be found elsewhere.
-
-For a while, these resources will likely still be a usable way to find bootstrap connections, that will allow you to discover other entrypoints to connect to, but it is highly recommended to also check community run projects like `rmap.world `_.
-
-You can connect your devices or instances to one or more of these to gain access to any
-Reticulum networks they are physically connected to. Simply add one or more interface
-snippets to your config file in the ``[interface]`` section, like in the example below:
-
-.. code:: ini
-
- # TCP/IP interface to the RNS Amsterdam Hub
- [[RNS Testnet Amsterdam]]
- type = TCPClientInterface
- enabled = yes
- target_host = amsterdam.connect.reticulum.network
- target_port = 4965
+A global, distributed backbone of Reticulum Transport Nodes is being run by volunteers from around the world. This network constitutes a heterogenous collection of both public and private nodes that form an uncoordinated, voluntary inter-networking backbone that currently provides global transport and internetworking capabilities for Reticulum.
+As a good starting point, you can find interface definitions for connecting your own networks to this backbone on websites such as `directory.rns.recipes `_ and `rmap.world `_.
.. tip::
- Don't rely on a single connection to a testnet entrypoint for everyday use. The testnet is often used for development and failure testing scenarios. Instead, read the :ref:`Bootstrapping Connectivity` section.
+ Don't rely on just a single connection to a the distributed backbone for everyday use. It is much better to have several redundant connections configured, and enable the interface discovery options, so your nodes can continously discover peering opportunities as the network evolves. Refer to the :ref:`Bootstrapping Connectivity` section to understand the options.
-As the amount of global Reticulum nodes and entrypoints have grown to a substantial quantity, the public Amsterdam Testnet entrypoint is slated for de-commisioning in the first quarter of 2026. If your own instances rely on this entrypoint for connectivity, it is high time to start configuring alternatives. Read the :ref:`Bootstrapping Connectivity` section for pointers.
-.. warning::
- It probably goes without saying, but *don't use the testnet entry-points as
- hardcoded or default interfaces in any applications you ship to users*. When
- shipping applications, the best practice is to provide your own default
- connectivity solutions, if needed and applicable, or in most cases, simply
- leave it up to the user which networks to connect to, and how.
.. _hosting-entrypoints:
Hosting Public Entrypoints
==========================
-If you want to host a public (or private) entry-point to a Reticulum network over the
-Internet, this section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to :ref:`make it discoverable over Reticulum`.
+If you want to help build a strong global interconnection backbone, you can host a public (or private) entry-point to a Reticulum network over the
+Internet. This section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to :ref:`make it discoverable over Reticulum`.
-You will need a machine, physical or
-virtual with a public IP address, that can be reached by other devices on the Internet.
+You will need a machine, physical or virtual with a public IP address, that can be reached by other devices on the Internet.
The most efficient and performant way to host a connectable entry-point supporting many
users is to use the ``BackboneInterface``. This interface type is fully compatible with
@@ -420,6 +265,45 @@ If you are hosting an entry-point on an operating system that does not support
``BackboneInterface``, you can use ``TCPServerInterface`` instead, although it will
not be as performant.
+
+Connecting Reticulum Instances Over the Internet
+================================================
+Reticulum currently offers three interfaces suitable for connecting instances over the Internet: :ref:`Backbone`, :ref:`TCP`
+and :ref:`I2P`. Each interface offers a different set of features, and Reticulum
+users should carefully choose the interface which best suites their needs.
+
+The ``TCPServerInterface`` allows users to host an instance accessible over TCP/IP. This
+method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
+however it also leaks more data about the server host.
+
+The ``BackboneInterface`` is a very fast and efficient interface type available on POSIX operating
+systems, designed to handle many hundreds of connections simultaneously with low memory, processing
+and I/O overhead. It is fully compatible with the TCP-based interface types.
+
+TCP connections reveal the IP address of both your instance and the server to anyone who can
+inspect the connection. Someone could use this information to determine your location or identity. Adversaries
+inspecting your packets may be able to record packet metadata like time of transmission and packet size.
+Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
+packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
+Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
+which most Internet connections don't offer anymore.
+
+The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
+(I2P) `_. To use this interface, users must also run an I2P daemon in
+parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd `_.
+
+By default, I2P will encrypt and mix all traffic sent over the Internet, and
+hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
+will also relay other I2P user's encrypted packets, which will use extra
+bandwidth and compute power, but also makes timing attacks and other forms of
+deep-packet-inspection much more difficult.
+
+I2P also allows users to host globally available Reticulum instances from non-public IP's and behind firewalls and NAT.
+
+In general it is recommended to use an I2P node if you want to host a publicly accessible
+instance, while preserving anonymity. If you care more about performance, and a slightly
+easier setup, use TCP.
+
Adding Radio Interfaces
=======================
Once you have Reticulum installed and working, you can add radio interfaces with
@@ -433,20 +317,18 @@ cheaply build an :ref:`RNode`, which is a general-purpose long-range
digital radio transceiver, that integrates easily with Reticulum.
To build one yourself requires installing a custom firmware on a supported LoRa
-development board with an auto-install script. Please see the :ref:`Communications Hardware`
-chapter for a guide. If you prefer purchasing a ready-made unit, you can refer to the
-:ref:`list of suppliers`. For more information on RNode, you can also
-refer to these additional external resources:
+development board with an auto-install script or web-based flasher.
+Please see the :ref:`Communications Hardware` chapter for a guide.
+If you prefer purchasing a ready-made unit, you can refer to the
+:ref:`list of suppliers`.
-* `How To Make Your Own RNodes `_
-* `Installing RNode Firmware on Compatible LoRa Devices `_
-* `Private, Secure and Uncensorable Messaging Over a LoRa Mesh `_
-* `RNode Firmware `_
+Other radio-based hardware interfaces are being developed and made available by
+the broader Reticulum community. You can find more information on such topics
+over Reticulum-based information sharing systems.
If you have communications hardware that is not already supported by any of the
-:ref:`existing interface types`, but you think would be suitable for use with Reticulum,
-you are welcome to head over to the `GitHub discussion pages `_
-and propose adding an interface for the hardware.
+:ref:`existing interface types`, it is easy to write (and potentially
+publish) a :ref:`custom interface module` that makes it compatible with Reticulum.
Creating and Using Custom Interfaces
diff --git a/docs/manual/_sources/index.rst.txt b/docs/manual/_sources/index.rst.txt
index 70212c2..b33049c 100644
--- a/docs/manual/_sources/index.rst.txt
+++ b/docs/manual/_sources/index.rst.txt
@@ -20,6 +20,7 @@ to participate in the development of Reticulum itself.
whatis
gettingstartedfast
+ software
using
understanding
hardware
diff --git a/docs/manual/_sources/software.rst.txt b/docs/manual/_sources/software.rst.txt
new file mode 100644
index 0000000..f1f5588
--- /dev/null
+++ b/docs/manual/_sources/software.rst.txt
@@ -0,0 +1,355 @@
+.. _software-main:
+
+************************
+Programs Using Reticulum
+************************
+
+This chapter provides a non-exhaustive list of notable programs, systems and application-layer
+protocols that have been built using Reticulum.
+
+These programs will let you get a feel for how Reticulum works. Most of them have been designed
+to run well even over slow networks based on LoRa or packet radio, but all can also be used over fast
+links, such as local WiFi, wired Ethernet, the Internet, or any combination.
+
+As such, it is easy to get started experimenting, without having to set up any radio
+transceivers or infrastructure just to try it out. Launching the programs on separate
+devices connected to the same WiFi network is enough to get started, and physical
+radio interfaces can then be added later.
+
+Programs & Utilities
+====================
+
+Many different applications using Reticulum already exist, serving a wide variety of purposes
+from day-to-day communication and information sharing to systems administration and tackling
+advanced networking and communications challenges.
+
+Development of Reticulum-based applications and systems is ongoing, so consider this list
+a non-exhaustive starting point of *some* of the options available. With a bit of searching,
+primarily over Reticulum itself, you will find many more interesting things.
+
+Remote Shell
+^^^^^^^^^^^^
+
+The `rnsh `_ program lets you establish fully interactive
+remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
+remote system, and is similar to how ``ssh`` works. The ``rnsh`` program is very efficient, and
+can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
+such as LoRa or packet radio.
+
+In addition to the default, fully interactive terminal mode,
+for extremely limited links, ``rnsh`` offers line-interactive mode, allowing you to interact
+with remote systems, even when link throughput is counted in a few hundreds of bits per second.
+
+.. raw:: latex
+
+ \newpage
+
+Nomad Network
+^^^^^^^^^^^^^
+
+The terminal-based program `Nomad Network `_
+provides a complete encrypted communications suite built with Reticulum. It features
+encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
+and has a built-in text-browser and page server with support for dynamically rendered pages,
+user authentication and more.
+
+.. image:: screenshots/nomadnet_3.png
+ :target: https://github.com/markqvist/nomadnet
+
+`Nomad Network `_ is a user-facing client
+for the messaging and information-sharing protocol LXMF.
+
+RNS Page Node
+^^^^^^^^^^^^^
+
+`RNS Page Node `_ is a simple way to serve pages and files to any other Nomad Network compatible client. Drop-in replacement for NomadNet nodes that primarily serve pages and files.
+
+
+Retipedia
+^^^^^^^^^
+
+You can host the entirity of Wikipedia (or any ``.zim``) file to other Nomad Network clients using `Retipedia `_.
+
+
+.. raw:: latex
+
+ \newpage
+
+Sideband
+^^^^^^^^
+
+If you would rather use an LXMF client with a graphical user interface, you can take
+a look at `Sideband `_, which is available for Android,
+Linux, macOS and Windows. Sideband is an advanced LXMF and LXST client, and a multi-purpose Reticulum
+utility, with features and functionality targeted at advanced users.
+
+.. only:: html
+
+ .. image:: screenshots/sideband_devices.webp
+ :align: center
+ :target: https://unsigned.io/sideband
+
+.. only:: latex
+
+ .. image:: screenshots/sideband_devices.png
+ :align: center
+ :target: https://unsigned.io/sideband
+
+Sideband allows you to communicate with other people or LXMF-compatible
+systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
+Paper Messages, or anything else Reticulum supports.
+
+It also interoperates with all other LXMF clients, and provides advanced features such as voice messaging,
+real-time voice calls, file attachments, private telemetry sharing, and a full
+plugin system for expandability.
+
+.. raw:: latex
+
+ \newpage
+
+MeshChatX
+^^^^^^^^
+
+A `Reticulum MeshChat fork from the future `_, with the goal of providing everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application. This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.
+
+.. only:: html
+
+ .. image:: screenshots/meshchatx.webp
+ :align: center
+ :target: https://git.quad4.io/RNS-Things/MeshChatX
+
+.. only:: latex
+
+ .. image:: screenshots/meshchatx.png
+ :align: center
+ :target: https://git.quad4.io/RNS-Things/MeshChatX
+
+
+Features include full LXST support, custom voicemail, phonebook, contact sharing, and ringtone support, multi-identity handling, modern UI/UX, offline documentation, expanded tools, page archiving, integrated maps and improved application security.
+
+.. raw:: latex
+
+ \newpage
+
+MeshChat
+^^^^^^^^
+
+The `Reticulum MeshChat `_ application
+is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
+page browser and other interesting functionality.
+
+.. only:: html
+
+ .. image:: screenshots/meshchat_1.webp
+ :align: center
+ :target: https://github.com/liamcottle/reticulum-meshchat
+
+.. only:: latex
+
+ .. image:: screenshots/meshchat_1.png
+ :align: center
+ :target: https://github.com/liamcottle/reticulum-meshchat
+
+Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
+any other LXMF client.
+
+Columba
+^^^^^^^
+
+`Columba `_ is a simple and familiar LXMF
+messaging app Android, built with a native Android interface and Material Design 3.
+
+.. only:: html
+
+ .. image:: screenshots/columba.webp
+ :align: center
+ :width: 25%
+ :target: https://github.com/torlando-tech/columba/
+
+.. only:: latex
+
+ .. image:: screenshots/columba.png
+ :align: center
+ :width: 25%
+ :target: https://github.com/torlando-tech/columba/
+
+While still in early and very active development, it is of course also compatible
+with all other LXMF clients, and allows you to message seamlessly with anyone else
+using LXMF.
+
+.. raw:: latex
+
+ \newpage
+
+Reticulum Relay Chat
+^^^^^^^^^^^^^^^^^^^^
+
+`Reticulum Relay Chat `_ is a live chat system built on top of the Reticulum Network Stack. It exists to let people talk to each other in real time over Reticulum without dragging in message databases, synchronization engines, or architectural commitments they did not ask for.
+
+The `rrcd `_ program provides a functional, reference RRC hub-server daemon implementation. RRC user clients include `rrc-gui `_ and `rrc-web `_.
+
+RRC is closer in spirit to IRC than to modern “everything platforms.” You connect, you join a room, you talk, and then you leave. If you were present, you saw the conversation. If you were not, the conversation did not wait for you. This is not an accident. This is the entire design.
+
+RetiBBS
+^^^^^^^
+
+`RetiBBS `_ is a bulletin board system implementation for Reticulum networks.
+
+.. only:: html
+
+ .. image:: screenshots/retibbs.webp
+ :align: center
+ :target: https://github.com/kc1awv/RetiBBS
+
+.. only:: latex
+
+ .. image:: screenshots/retibbs.png
+ :align: center
+ :target: https://github.com/kc1awv/RetiBBS
+
+RetiBBS allows users to communicate through message boards in a secure manner.
+
+.. raw:: latex
+
+ \newpage
+
+RBrowser
+^^^^^^^^
+
+The `rBrowser `_ program is a cross-platoform, standalone, web-based browser for exploring NomadNetwork Nodes over Reticulum Network. It automatically discovers NomadNet nodes through network announces and provides a user-friendly interface for browsing distributed content with Micron markup support.
+
+.. only:: html
+
+ .. image:: screenshots/rbrowser.webp
+ :align: center
+ :target: https://github.com/fr33n0w/rBrowser
+
+.. only:: latex
+
+ .. image:: screenshots/rbrowser.png
+ :align: center
+ :target: https://github.com/fr33n0w/rBrowser
+
+Includes useful features like automatic listening for announce, adding nodes to favorites, browsing and rendering any kind of NomadNet links, downloading files from remote nodes, a unique local NomadNet Search Engine and more.
+
+
+.. raw:: latex
+
+ \newpage
+
+Reticulum Network Telephone
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``rnphone`` program, included as part of the `LXST `_ package is a command-line Reticulum telephone utility and daemon, that allows building physical, hardware telephones for LXST and Reticulum, as well as simply performing calls via the command line.
+
+.. only:: html
+
+ .. image:: screenshots/rnphone.webp
+ :align: center
+ :target: https://github.com/markqvist/LXST
+
+.. only:: latex
+
+ .. image:: screenshots/rnphone.jpg
+ :align: center
+ :target: https://github.com/markqvist/LXST
+
+It supports interfacing directly with hardware peripherals such as GPIO keypads and LCD displays, providing a modular system for building secure hardware telephones.
+
+.. raw:: latex
+
+ \newpage
+
+LXST Phone
+^^^^^^^^^^
+
+The `LXST Phone `_ program is a cross-platform desktop application for performing LXST voice calls over Reticulum.
+
+.. only:: html
+
+ .. image:: screenshots/lxst_phone.webp
+ :align: center
+ :target: https://github.com/kc1awv/lxst_phone
+
+.. only:: latex
+
+ .. image:: screenshots/lxst_phone.png
+ :align: center
+ :target: https://github.com/kc1awv/lxst_phone
+
+It supports various advanced features such as SAS verification, peer blocking, rate limiting, encrypted call history storage and contact management.
+
+
+.. raw:: latex
+
+ \newpage
+
+LXMFy
+^^^^^
+
+`LXMFy `_ is a comprehensive and advanced bot creation framework for LXMF, that allows building any kind of automation or bot system running over LXMF and Reticulum. `Bot implementations exist `_ for Home Assistant control, LLM integrations, and various other purposes.
+
+
+LXMF Interactive Client
+^^^^^^^^^^^^^^^^^^^^^^^
+
+`LXMF Interactive Client `_ is a feature-rich, terminal-based LXMF messaging client with many advanced features and an extensible plugin architecture.
+
+RNS FileSync
+^^^^^^^^^^^^
+
+The `RNS FileSync `_ program enables automatic file synchronization between devices without requiring central servers, internet connectivity, or cloud services. It works over any network medium supported by Reticulum, including radio, LoRa, WiFi, or the internet, making it ideal for off-grid, privacy-focused, and resilient file sharing.
+
+
+Micron Parser JS
+^^^^^^^^^^^^^^^^
+
+`Micron Parser JS `_ is the JavaScript-based parser for the Micron markup language, that most web-based Nomad Network browsers use. If you want to make utilities or tools that display Micron pages, this library is essential.
+
+
+RNMon
+^^^^^
+
+`RNMon `_ is a monitoring daemon designed to monitor the status of multiple RNS applications and push the metrics to an InfluxDB instance over the influx line protocol.
+
+
+.. raw:: latex
+
+ \newpage
+
+Protocols
+=========
+
+A number of standard protocols have emerged through real-world usage and testing in the Reticulum community. While you may sometimes want to use completely custom protocols and implementations when writing Reticulum-based software, using these protocols provides application developers with an easy way to implement advanced functionality quickly and effortlessly. Using them also ensures compatibility and interoperability between many different client applications, creating an open communications ecosystem where users are free to choose the applications that suit their needs, while remaining connected to everyone else.
+
+LXMF
+^^^^
+
+`LXMF `_ is a simple and flexible messaging format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It offers zero-conf message routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports.
+
+LXMF is efficient enough that it can deliver messages over extremely low-bandwidth systems such as packet radio or LoRa. Encrypted LXMF messages can also be encoded as QR-codes or text-based URIs, allowing completely analog paper message transport.
+
+Using Propagation Nodes, LXMF also offer a way to store and forward messages to users or endpoints that are not directly reachable at the time of message emission.
+
+LXST
+^^^^
+
+`LXST `_ is a simple and flexible real-time streaming format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It is built on top of Reticulum and offers zero-conf stream routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports. It currently powers real-time voice and telephony applications over Reticulum.
+
+RRC
+^^^
+
+The `Reticulum Relay Chat `_ protocol, is a live chat system built on top of the Reticulum Network Stack. It exists to provide near real-time group communication without dragging in message history databases, federation machinery, or architectural guilt.
+
+RRC is intentionally simple. It does not pretend to be email, a mailbox, or a distributed archive. It behaves more like a conversation in a room. If you were there, you heard it. If you were not, you did not. That is not a bug, that is the point.
+
+Interface Modules & Connectivity Resources
+==========================================
+
+This section provides a list of various community-provided interface modules, guides and resources for creating Reticulum networks over special or challenging mediums.
+
+* Custom interface module for running `RNS over HTTP `_
+* Guide for running `Reticulum over ICMP `_ using ``PipeInterface``
+* Guide for running `Reticulum over DNS `_ with Iodine
+* Guide for running `Reticulum over HF radio `_
+* `Modem73 `_ is a KISS TNC OFDM modem frontend that can be used with Reticulum
\ No newline at end of file
diff --git a/docs/manual/genindex.html b/docs/manual/genindex.html
index 682dce6..6af2029 100644
--- a/docs/manual/genindex.html
+++ b/docs/manual/genindex.html
@@ -213,6 +213,7 @@
Try Using a Reticulum-based Program
-If you simply want to try using a program built with Reticulum, a few different
-programs exist that allow basic communication and a range of other useful functions,
+
If you simply want to try using a program built with Reticulum, a range of different
+programs exist that allow basic communication and a various other useful functions,
even over extremely low-bandwidth Reticulum networks.
-These programs will let you get a feel for how Reticulum works. They have been designed
-to run well over networks based on LoRa or packet radio, but can also be used over fast
-links, such as local WiFi, wired Ethernet, the Internet, or any combination.
-As such, it is easy to get started experimenting, without having to set up any radio
-transceivers or infrastructure just to try it out. Launching the programs on separate
-devices connected to the same WiFi network is enough to get started, and physical
-radio interfaces can then be added later.
-
-Remote Shell
-The rnsh program lets you establish fully interactive
-remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
-remote system, and is similar to how ssh works. The rnsh is very efficient, and
-can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
-such as LoRa or packet radio.
-
-
-Nomad Network
-The terminal-based program Nomad Network
-provides a complete encrypted communications suite built with Reticulum. It features
-encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
-and has a built-in text-browser and page server with support for dynamically rendered pages,
-user authentication and more.
-
-
-Nomad Network is a user-facing client
-for the messaging and information-sharing protocol
-LXMF , another project built with Reticulum.
-You can install Nomad Network via pip:
-# Install ...
-pip install nomadnet
-
-# ... and run
-nomadnet
-
-
-
-
Note
-
If this is the very first time you use pip to install a program
-on your system, you might need to reboot your system for your program to become
-available. If you get a “command not found” error or similar when running the
-program, reboot your system and try again. In some cases, you may even need to
-manually add the pip install path to your PATH environment variable.
-
-
-
-Sideband
-If you would rather use a program with a graphical user interface, you can take
-a look at Sideband , which is available for Android,
-Linux, macOS and Windows.
-
-
-Sideband allows you to communicate with other people or LXMF-compatible
-systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
-Paper Messages, or anything else Reticulum supports. It also interoperates with
-the Nomad Network program.
-
-
-MeshChat
-The Reticulum MeshChat application
-is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
-page browser and other interesting functionality.
-
-
-Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
-any other LXMF client.
-
Using the Included Utilities
@@ -418,53 +353,29 @@ other device on your local WiFi will then be able to connect to this wider Retic
network just using the default (AutoInterface ) configuration.
Possibly, the examples in the config file are enough to get you started. If
you want more information, you can read the Building Networks
-and Interfaces chapters of this manual.
-
-
-Connecting Reticulum Instances Over the Internet
-Reticulum currently offers three interfaces suitable for connecting instances over the Internet: Backbone , TCP
-and I2P . Each interface offers a different set of features, and Reticulum
-users should carefully choose the interface which best suites their needs.
-The TCPServerInterface allows users to host an instance accessible over TCP/IP. This
-method is generally faster, lower latency, and more energy efficient than using I2PInterface ,
-however it also leaks more data about the server host.
-The BackboneInterface is a very fast and efficient interface type available on POSIX operating
-systems, designed to handle many hundreds of connections simultaneously with low memory, processing
-and I/O overhead. It is fully compatible with the TCP-based interface types.
-TCP connections reveal the IP address of both your instance and the server to anyone who can
-inspect the connection. Someone could use this information to determine your location or identity. Adversaries
-inspecting your packets may be able to record packet metadata like time of transmission and packet size.
-Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
-packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
-Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
-which most Internet connections don’t offer anymore.
-The I2PInterface routes messages through the Invisible Internet Protocol
-(I2P) . To use this interface, users must also run an I2P daemon in
-parallel to rnsd . For always-on I2P nodes it is recommended to use i2pd .
-By default, I2P will encrypt and mix all traffic sent over the Internet, and
-hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
-will also relay other I2P user’s encrypted packets, which will use extra
-bandwidth and compute power, but also makes timing attacks and other forms of
-deep-packet-inspection much more difficult.
-I2P also allows users to host globally available Reticulum instances from non-public IP’s and behind firewalls and NAT.
-In general it is recommended to use an I2P node if you want to host a publicly accessible
-instance, while preserving anonymity. If you care more about performance, and a slightly
-easier setup, use TCP.
+and Interfaces chapters of this manual, but most importantly,
+start with reading the next section, Bootstrapping Connectivity ,
+as this provides the most essential understanding of how to ensure reliable
+connectivity with a minimum of maintenance.
-Bootstrapping Connectivity
+Bootstrapping Connectivity
Reticulum is not a service you subscribe to, nor is it a single global network you “join”. It is a networking stack ; a toolkit for building communications systems that align with your specific values, requirements, and operational environment. The way you choose to connect to other Reticulum peers is entirely your own choice.
One of the most powerful aspects of Reticulum is that it provides a multitude of tools to establish, maintain, and optimize connectivity. You can use these tools in isolation or combine them in complex configurations to achieve a vast array of goals.
Whether your aim is to create a completely private, air-gapped network for your family; to build a resilient community mesh that survives infrastructure collapse; to connect far and wide to as many nodes as possible; or simply to maintain a reliable, encrypted link to a specific organization you care about, Reticulum provides the mechanisms to make it happen.
There is no “right” or “wrong” way to build a Reticulum network, and you don’t need to be a network engineer just to get started. If the information flows in the way you intend, and your privacy and security requirements are met, your configuration is a success. Reticulum is designed to make the most challenging and difficult scenarios attainable, even when other networking technologies fail.
Finding Your Way
-When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with. This is the process of bootstrapping .
+When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with; the process of bootstrapping connectivity .
+
+
Important
A common mistake in modern networking is the reliance on a few centralized, hard-coded entrypoints. If every user simply connects to the same list of public IP addresses found on a website, the network becomes brittle, centralized, and ultimately fails to deliver on the promise of decentralization.
-
Reticulum encourages the approach of organic growth . Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to discover better, more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
+
+Reticulum encourages the approach of organic growth . Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to continously discover more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
It is possible to simply add a few public entrypoints to the [interfaces] section of your Reticulum configuration and be connected, but a better option is to enable interface discovery and either manually select relevant, local interfaces, or enable discovered interface auto-connection.
A relevant option in this context is the bootstrap only interface option. This is an automated tool for better distributing connectivity. By enabling interface discovery and auto-connection, and marking an interface as bootstrap_only , you tell Reticulum to use that interface primarliy to find connectivity options, and then disconnect it once sufficient entrypoints have been discovered. This helps create a network topology that favors locality and resilience over the simple centralization caused by using only a few static entrypoints.
-A good place to find interface definitions for bootstrapping connectivity is rmap.world .
+Good places to find interface definitions for bootstrapping connectivity are websites like
+directory.rns.recipes and rmap.world .
Building Personal Infrastructure
@@ -499,46 +410,20 @@ easier setup, use TCP.
For guidelines on how to properly configure and secure a public gateway, refer to the Hosting Public Entrypoints section.
-
-Connect to the Public Testnet
-An experimental public testnet has been made accessible by volunteers in the community. You
-can find interface definitions for adding to your .reticulum/config file on the
-Reticulum Website , or the
-Community Wiki .
-As development of Reticulum has transitioned away from the public Internet, and is now happening exclusively over Reticulum itself, the lists on the Reticulum Website and the
-Community Wiki are no longer actively maintained, and any up-to-date connectivity information will have to be found elsewhere.
-For a while, these resources will likely still be a usable way to find bootstrap connections, that will allow you to discover other entrypoints to connect to, but it is highly recommended to also check community run projects like rmap.world .
-You can connect your devices or instances to one or more of these to gain access to any
-Reticulum networks they are physically connected to. Simply add one or more interface
-snippets to your config file in the [interface] section, like in the example below:
-# TCP/IP interface to the RNS Amsterdam Hub
-[[RNS Testnet Amsterdam]]
- type = TCPClientInterface
- enabled = yes
- target_host = amsterdam.connect.reticulum.network
- target_port = 4965
-
-
+
+Connect to the Distributed Backbone
+A global, distributed backbone of Reticulum Transport Nodes is being run by volunteers from around the world. This network constitutes a heterogenous collection of both public and private nodes that form an uncoordinated, voluntary inter-networking backbone that currently provides global transport and internetworking capabilities for Reticulum.
+As a good starting point, you can find interface definitions for connecting your own networks to this backbone on websites such as directory.rns.recipes and rmap.world .
Tip
-
Don’t rely on a single connection to a testnet entrypoint for everyday use. The testnet is often used for development and failure testing scenarios. Instead, read the Bootstrapping Connectivity section.
-
-As the amount of global Reticulum nodes and entrypoints have grown to a substantial quantity, the public Amsterdam Testnet entrypoint is slated for de-commisioning in the first quarter of 2026. If your own instances rely on this entrypoint for connectivity, it is high time to start configuring alternatives. Read the Bootstrapping Connectivity section for pointers.
-
-
Warning
-
It probably goes without saying, but don’t use the testnet entry-points as
-hardcoded or default interfaces in any applications you ship to users . When
-shipping applications, the best practice is to provide your own default
-connectivity solutions, if needed and applicable, or in most cases, simply
-leave it up to the user which networks to connect to, and how.
+
Don’t rely on just a single connection to a the distributed backbone for everyday use. It is much better to have several redundant connections configured, and enable the interface discovery options, so your nodes can continously discover peering opportunities as the network evolves. Refer to the Bootstrapping Connectivity section to understand the options.
Hosting Public Entrypoints
-If you want to host a public (or private) entry-point to a Reticulum network over the
-Internet, this section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to make it discoverable over Reticulum .
-You will need a machine, physical or
-virtual with a public IP address, that can be reached by other devices on the Internet.
+If you want to help build a strong global interconnection backbone, you can host a public (or private) entry-point to a Reticulum network over the
+Internet. This section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to make it discoverable over Reticulum .
+You will need a machine, physical or virtual with a public IP address, that can be reached by other devices on the Internet.
The most efficient and performant way to host a connectable entry-point supporting many
users is to use the BackboneInterface . This interface type is fully compatible with
the TCPClientInterface and TCPServerInterface types, but much faster and uses
@@ -578,6 +463,37 @@ to your entry-point.
BackboneInterface , you can use TCPServerInterface instead, although it will
not be as performant.
+
+Connecting Reticulum Instances Over the Internet
+Reticulum currently offers three interfaces suitable for connecting instances over the Internet: Backbone , TCP
+and I2P . Each interface offers a different set of features, and Reticulum
+users should carefully choose the interface which best suites their needs.
+The TCPServerInterface allows users to host an instance accessible over TCP/IP. This
+method is generally faster, lower latency, and more energy efficient than using I2PInterface ,
+however it also leaks more data about the server host.
+The BackboneInterface is a very fast and efficient interface type available on POSIX operating
+systems, designed to handle many hundreds of connections simultaneously with low memory, processing
+and I/O overhead. It is fully compatible with the TCP-based interface types.
+TCP connections reveal the IP address of both your instance and the server to anyone who can
+inspect the connection. Someone could use this information to determine your location or identity. Adversaries
+inspecting your packets may be able to record packet metadata like time of transmission and packet size.
+Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
+packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
+Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
+which most Internet connections don’t offer anymore.
+The I2PInterface routes messages through the Invisible Internet Protocol
+(I2P) . To use this interface, users must also run an I2P daemon in
+parallel to rnsd . For always-on I2P nodes it is recommended to use i2pd .
+By default, I2P will encrypt and mix all traffic sent over the Internet, and
+hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
+will also relay other I2P user’s encrypted packets, which will use extra
+bandwidth and compute power, but also makes timing attacks and other forms of
+deep-packet-inspection much more difficult.
+I2P also allows users to host globally available Reticulum instances from non-public IP’s and behind firewalls and NAT.
+In general it is recommended to use an I2P node if you want to host a publicly accessible
+instance, while preserving anonymity. If you care more about performance, and a slightly
+easier setup, use TCP.
+
Adding Radio Interfaces
Once you have Reticulum installed and working, you can add radio interfaces with
@@ -589,20 +505,16 @@ work with Reticulum. For information on how to configure this, see the
cheaply build an RNode , which is a general-purpose long-range
digital radio transceiver, that integrates easily with Reticulum.
To build one yourself requires installing a custom firmware on a supported LoRa
-development board with an auto-install script. Please see the Communications Hardware
-chapter for a guide. If you prefer purchasing a ready-made unit, you can refer to the
-list of suppliers . For more information on RNode, you can also
-refer to these additional external resources:
-
+development board with an auto-install script or web-based flasher.
+Please see the Communications Hardware chapter for a guide.
+If you prefer purchasing a ready-made unit, you can refer to the
+list of suppliers .
+Other radio-based hardware interfaces are being developed and made available by
+the broader Reticulum community. You can find more information on such topics
+over Reticulum-based information sharing systems.
If you have communications hardware that is not already supported by any of the
-existing interface types , but you think would be suitable for use with Reticulum,
-you are welcome to head over to the GitHub discussion pages
-and propose adding an interface for the hardware.
+existing interface types , it is easy to write (and potentially
+publish) a custom interface module that makes it compatible with Reticulum.
Creating and Using Custom Interfaces
@@ -950,12 +862,12 @@ All other available modules will still be loaded when needed.
-
+
Next
-
Using Reticulum on Your System
+
Programs Using Reticulum
@@ -1004,16 +916,9 @@ All other available modules will still be loaded when needed.
Resolving Dependency & Installation Issues
-
Try Using a Reticulum-based Program
-
+
Try Using a Reticulum-based Program
Using the Included Utilities
Creating a Network With Reticulum
-
Connecting Reticulum Instances Over the Internet
Bootstrapping Connectivity
-
Connect to the Public Testnet
+
Connect to the Distributed Backbone
Hosting Public Entrypoints
+
Connecting Reticulum Instances Over the Internet
Adding Radio Interfaces
Creating and Using Custom Interfaces
Develop a Program with Reticulum
diff --git a/docs/manual/index.html b/docs/manual/index.html
index b9820f0..22968ab 100644
--- a/docs/manual/index.html
+++ b/docs/manual/index.html
@@ -215,6 +215,7 @@
-
Try Using a Reticulum-based Program
-
+
Try Using a Reticulum-based Program
Using the Included Utilities
Creating a Network With Reticulum
-
Connecting Reticulum Instances Over the Internet
Bootstrapping Connectivity
-
Connect to the Public Testnet
+
Connect to the Distributed Backbone
Hosting Public Entrypoints
+
Connecting Reticulum Instances Over the Internet
Adding Radio Interfaces
Creating and Using Custom Interfaces
Develop a Program with Reticulum
@@ -319,6 +314,37 @@ to participate in the development of Reticulum itself.
Pure-Python Reticulum
+
Programs Using Reticulum
+
Using Reticulum on Your System
Configuration & Data
Included Utility Programs
diff --git a/docs/manual/objects.inv b/docs/manual/objects.inv
index cf6e7f0..7c4bfbf 100644
Binary files a/docs/manual/objects.inv and b/docs/manual/objects.inv differ
diff --git a/docs/manual/search.html b/docs/manual/search.html
index 4d4a7a4..56a93f8 100644
--- a/docs/manual/search.html
+++ b/docs/manual/search.html
@@ -215,6 +215,7 @@
What is Reticulum?
Getting Started Fast
+Programs Using Reticulum
Using Reticulum on Your System
Understanding Reticulum
Communications Hardware
diff --git a/docs/manual/searchindex.js b/docs/manual/searchindex.js
index c5d6e2a..b907539 100644
--- a/docs/manual/searchindex.js
+++ b/docs/manual/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"alltitles":{"API Reference":[[7,null]],"ARM64":[[2,"arm64"]],"AX.25 KISS Interface":[[5,"ax-25-kiss-interface"]],"Adding Radio Interfaces":[[2,"adding-radio-interfaces"]],"An Explanation of Reticulum for Human Beings":[[1,null]],"Android":[[2,"android"]],"Announce":[[0,"announce"]],"Announce Propagation Rules":[[9,"announce-propagation-rules"]],"Announce Rate Control":[[5,"announce-rate-control"]],"Auto Interface":[[5,"auto-interface"]],"Automated List Sourcing":[[10,"automated-list-sourcing"]],"Backbone Interface":[[5,"backbone-interface"]],"Blackhole Management":[[10,"blackhole-management"]],"Bootstrapping Connectivity":[[2,"bootstrapping-connectivity"]],"Broadcast":[[0,"broadcast"]],"Buffer":[[0,"buffer"]],"Building Networks":[[6,null]],"Building Personal Infrastructure":[[2,"building-personal-infrastructure"]],"Caveat Emptor":[[11,"caveat-emptor"]],"Channel":[[0,"channel"]],"Code Examples":[[0,null]],"Combining Hardware Types":[[3,"combining-hardware-types"]],"Common Interface Options":[[5,"common-interface-options"]],"Communications Hardware":[[3,null]],"Concepts & Overview":[[6,"concepts-overview"]],"Conceptual Overview":[[9,"conceptual-overview"]],"Configuration & Data":[[10,"configuration-data"]],"Configuring Interfaces":[[5,null]],"Connect to the Public Testnet":[[2,"connect-to-the-public-testnet"]],"Connecting Remotes":[[5,"connecting-remotes"]],"Connecting Reticulum Instances Over the Internet":[[2,"connecting-reticulum-instances-over-the-internet"]],"Contributing to the Global Ret":[[2,"contributing-to-the-global-ret"]],"Creating RNodes":[[3,"creating-rnodes"]],"Creating a Network With Reticulum":[[2,"creating-a-network-with-reticulum"]],"Creating and Using Custom Interfaces":[[2,"creating-and-using-custom-interfaces"]],"Creating and Using a Network Identity":[[9,"creating-and-using-a-network-identity"]],"Cryptographic Primitives":[[9,"cryptographic-primitives"]],"Current Status":[[11,"current-status"]],"Current Usage":[[9,"current-usage"]],"Custom Interfaces":[[0,"custom-interfaces"],[5,"custom-interfaces"]],"Debian Bookworm":[[2,"debian-bookworm"]],"Destination Naming":[[9,"destination-naming"]],"Destinations":[[9,"destinations"]],"Destinations, Not Addresses":[[6,"destinations-not-addresses"]],"Develop a Program with Reticulum":[[2,"develop-a-program-with-reticulum"]],"Discoverable Interfaces":[[5,"discoverable-interfaces"]],"Discovering Interfaces":[[10,"discovering-interfaces"]],"Discovery Parameters":[[5,"discovery-parameters"]],"Donations":[[8,"donations"]],"Echo":[[0,"echo"]],"Enabling Discovery":[[5,"enabling-discovery"]],"Ethernet-based Hardware":[[3,"ethernet-based-hardware"]],"Example Configuration":[[5,"example-configuration"]],"Filetransfer":[[0,"filetransfer"]],"Finding Your Way":[[2,"finding-your-way"]],"Fixed Serial Port Names":[[10,"fixed-serial-port-names"]],"Future Implications":[[9,"future-implications"]],"Getting Further":[[9,"getting-further"]],"Getting Started Fast":[[2,null]],"Goals":[[9,"goals"]],"Heltec LoRa32 v2.0":[[3,"heltec-lora32-v2-0"]],"Heltec LoRa32 v3.0":[[3,"heltec-lora32-v3-0"]],"Heltec LoRa32 v4.0":[[3,"heltec-lora32-v4-0"]],"Heltec T114":[[3,"heltec-t114"]],"Heterogeneous Connectivity":[[6,"heterogeneous-connectivity"]],"Hosting Public Entrypoints":[[2,"hosting-public-entrypoints"]],"I2P Interface":[[5,"i2p-interface"]],"Identification":[[0,"example-identify"]],"Identities":[[9,"understanding-identities"]],"Improving System Configuration":[[10,"improving-system-configuration"]],"Included Utility Programs":[[10,"included-utility-programs"]],"Indices and Tables":[[4,"indices-and-tables"]],"Installation":[[3,"installation"]],"Interface Access Codes":[[9,"interface-access-codes"]],"Interface Modes":[[5,"interface-modes"],[5,"interfaces-modes"]],"Interface Types and Devices":[[11,"interface-types-and-devices"]],"Introduction & Basic Functionality":[[9,"introduction-basic-functionality"]],"Introductory Considerations":[[6,"introductory-considerations"]],"KISS Interface":[[5,"kiss-interface"]],"LilyGO LoRa32 v1.0":[[3,"lilygo-lora32-v1-0"]],"LilyGO LoRa32 v2.0":[[3,"lilygo-lora32-v2-0"]],"LilyGO LoRa32 v2.1":[[3,"lilygo-lora32-v2-1"]],"LilyGO T-Beam":[[3,"lilygo-t-beam"]],"LilyGO T-Beam Supreme":[[3,"lilygo-t-beam-supreme"]],"LilyGO T-Deck":[[3,"lilygo-t-deck"]],"LilyGO T-Echo":[[3,"lilygo-t-echo"]],"LilyGO T3S3":[[3,"lilygo-t3s3"]],"Link":[[0,"link"]],"Link Establishment in Detail":[[9,"link-establishment-in-detail"]],"Listeners":[[5,"listeners"]],"Local Blackhole Management":[[10,"local-blackhole-management"]],"MacOS":[[2,"macos"]],"MeshChat":[[2,"meshchat"]],"Minimal":[[0,"minimal"]],"Mixing Strategies":[[2,"mixing-strategies"]],"Motivation":[[9,"motivation"]],"Network Health & Responsibility":[[2,"network-health-responsibility"]],"Network Identities":[[9,"network-identities"]],"New Destination Rate Limiting":[[5,"new-destination-rate-limiting"]],"Node Types":[[9,"node-types"]],"Nomad Network":[[2,"nomad-network"]],"OpenCom XL":[[3,"opencom-xl"]],"OpenWRT":[[2,"openwrt"]],"Packet Prioritisation":[[9,"packet-prioritisation"]],"Packet Radio Modems":[[3,"packet-radio-modems"]],"Pipe Interface":[[5,"pipe-interface"]],"Platform-Specific Install Notes":[[2,"platform-specific-install-notes"]],"Protocol Specifics":[[9,"protocol-specifics"]],"Provide Feedback":[[8,"provide-feedback"]],"Public Key Announcements":[[9,"public-key-announcements"]],"Publishing Blackhole Lists":[[10,"publishing-blackhole-lists"]],"Pure-Python Reticulum":[[2,"pure-python-reticulum"]],"RAK4631-based Boards":[[3,"rak4631-based-boards"]],"RISC-V":[[2,"risc-v"]],"RNode":[[3,"rnode"]],"RNode LoRa Interface":[[5,"rnode-lora-interface"]],"RNode Multi Interface":[[5,"rnode-multi-interface"]],"Raspberry Pi":[[2,"raspberry-pi"]],"Reaching the Destination":[[9,"reaching-the-destination"]],"Reference Setup":[[9,"reference-setup"]],"Remote Management":[[10,"remote-management"]],"Remote Shell":[[2,"remote-shell"]],"Requests & Responses":[[0,"requests-responses"]],"Resolving Dependency & Installation Issues":[[2,"resolving-dependency-installation-issues"]],"Resources":[[9,"resources"]],"Reticulum Network Stack Manual":[[4,null]],"Reticulum Transport":[[9,"reticulum-transport"]],"Reticulum as a System Service":[[10,"reticulum-as-a-system-service"]],"Security Considerations":[[5,"security-considerations"]],"Serial Interface":[[5,"serial-interface"]],"Serial Lines & Devices":[[3,"serial-lines-devices"]],"Sideband":[[2,"sideband"]],"Standalone Reticulum Installation":[[2,"standalone-reticulum-installation"]],"Support Reticulum":[[8,null]],"Supported Boards and Devices":[[3,"supported-boards-and-devices"]],"Systemwide Service":[[10,"systemwide-service"]],"TCP Client Interface":[[5,"tcp-client-interface"]],"TCP Server Interface":[[5,"tcp-server-interface"]],"Table Of Contents":[[4,"table-of-contents"]],"The Announce Mechanism in Detail":[[9,"the-announce-mechanism-in-detail"]],"The rncp Utility":[[10,"the-rncp-utility"]],"The rnid Utility":[[10,"the-rnid-utility"]],"The rnodeconf Utility":[[10,"the-rnodeconf-utility"]],"The rnpath Utility":[[10,"the-rnpath-utility"]],"The rnprobe Utility":[[10,"the-rnprobe-utility"]],"The rnsd Utility":[[10,"the-rnsd-utility"]],"The rnstatus Utility":[[10,"the-rnstatus-utility"]],"The rnx Utility":[[10,"the-rnx-utility"]],"Transport Nodes and Instances":[[6,"transport-nodes-and-instances"]],"Trustless Networking":[[6,"trustless-networking"]],"Try Using a Reticulum-based Program":[[2,"try-using-a-reticulum-based-program"]],"UDP Interface":[[5,"udp-interface"]],"Ubuntu Lunar":[[2,"ubuntu-lunar"]],"Understanding Reticulum":[[9,null]],"Unsigned RNode v2.x":[[3,"unsigned-rnode-v2-x"]],"Usage with Reticulum":[[3,"usage-with-reticulum"]],"Userspace Service":[[10,"userspace-service"]],"Using Reticulum on Your System":[[10,null]],"Using the Included Utilities":[[2,"using-the-included-utilities"]],"What does Reticulum Offer?":[[11,"what-does-reticulum-offer"]],"What is Reticulum?":[[11,null]],"Where can Reticulum be Used?":[[11,"where-can-reticulum-be-used"]],"WiFi-based Hardware":[[3,"wifi-based-hardware"]],"Windows":[[2,"windows"]],"Wire Format":[[9,"wire-format"]]},"docnames":["examples","forhumans","gettingstartedfast","hardware","index","interfaces","networks","reference","support","understanding","using","whatis"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["examples.rst","forhumans.rst","gettingstartedfast.rst","hardware.rst","index.rst","interfaces.rst","networks.rst","reference.rst","support.rst","understanding.rst","using.rst","whatis.rst"],"indexentries":{"__init__() (rns.rawchannelreader method)":[[7,"RNS.RawChannelReader.__init__",false]],"__init__() (rns.rawchannelwriter method)":[[7,"RNS.RawChannelWriter.__init__",false]],"accepts_links() (rns.destination method)":[[7,"RNS.Destination.accepts_links",false]],"add_message_handler() (rns.channel.channel method)":[[7,"RNS.Channel.Channel.add_message_handler",false]],"add_ready_callback() (rns.rawchannelreader method)":[[7,"RNS.RawChannelReader.add_ready_callback",false]],"advertise() (rns.resource method)":[[7,"RNS.Resource.advertise",false]],"announce() (rns.destination method)":[[7,"RNS.Destination.announce",false]],"announce_cap (rns.reticulum attribute)":[[7,"RNS.Reticulum.ANNOUNCE_CAP",false]],"app_and_aspects_from_name() (rns.destination static method)":[[7,"RNS.Destination.app_and_aspects_from_name",false]],"await_path() (rns.transport static method)":[[7,"RNS.Transport.await_path",false]],"blackhole_sources() (rns.reticulum static method)":[[7,"RNS.Reticulum.blackhole_sources",false]],"buffer (class in rns)":[[7,"RNS.Buffer",false]],"cancel() (rns.resource method)":[[7,"RNS.Resource.cancel",false]],"channel (class in rns.channel)":[[7,"RNS.Channel.Channel",false]],"clear_default_app_data() (rns.destination method)":[[7,"RNS.Destination.clear_default_app_data",false]],"concluded() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.concluded",false]],"create_bidirectional_buffer() (rns.buffer static method)":[[7,"RNS.Buffer.create_bidirectional_buffer",false]],"create_keys() (rns.destination method)":[[7,"RNS.Destination.create_keys",false]],"create_reader() (rns.buffer static method)":[[7,"RNS.Buffer.create_reader",false]],"create_writer() (rns.buffer static method)":[[7,"RNS.Buffer.create_writer",false]],"current_ratchet_id() (rns.identity static method)":[[7,"RNS.Identity.current_ratchet_id",false]],"curve (rns.identity attribute)":[[7,"RNS.Identity.CURVE",false]],"curve (rns.link attribute)":[[7,"RNS.Link.CURVE",false]],"decrypt() (rns.destination method)":[[7,"RNS.Destination.decrypt",false]],"decrypt() (rns.identity method)":[[7,"RNS.Identity.decrypt",false]],"deregister_announce_handler() (rns.transport static method)":[[7,"RNS.Transport.deregister_announce_handler",false]],"deregister_request_handler() (rns.destination method)":[[7,"RNS.Destination.deregister_request_handler",false]],"destination (class in rns)":[[7,"RNS.Destination",false]],"enable_ratchets() (rns.destination method)":[[7,"RNS.Destination.enable_ratchets",false]],"encrypt() (rns.destination method)":[[7,"RNS.Destination.encrypt",false]],"encrypt() (rns.identity method)":[[7,"RNS.Identity.encrypt",false]],"encrypted_mdu (rns.packet attribute)":[[7,"RNS.Packet.ENCRYPTED_MDU",false]],"enforce_ratchets() (rns.destination method)":[[7,"RNS.Destination.enforce_ratchets",false]],"establishment_timeout_per_hop (rns.link attribute)":[[7,"RNS.Link.ESTABLISHMENT_TIMEOUT_PER_HOP",false]],"expand_name() (rns.destination static method)":[[7,"RNS.Destination.expand_name",false]],"from_bytes() (rns.identity static method)":[[7,"RNS.Identity.from_bytes",false]],"from_file() (rns.identity static method)":[[7,"RNS.Identity.from_file",false]],"full_hash() (rns.identity static method)":[[7,"RNS.Identity.full_hash",false]],"get_age() (rns.link method)":[[7,"RNS.Link.get_age",false]],"get_channel() (rns.link method)":[[7,"RNS.Link.get_channel",false]],"get_data_size() (rns.resource method)":[[7,"RNS.Resource.get_data_size",false]],"get_establishment_rate() (rns.link method)":[[7,"RNS.Link.get_establishment_rate",false]],"get_expected_rate() (rns.link method)":[[7,"RNS.Link.get_expected_rate",false]],"get_hash() (rns.resource method)":[[7,"RNS.Resource.get_hash",false]],"get_instance() (rns.reticulum static method)":[[7,"RNS.Reticulum.get_instance",false]],"get_mdu() (rns.link method)":[[7,"RNS.Link.get_mdu",false]],"get_mode() (rns.link method)":[[7,"RNS.Link.get_mode",false]],"get_mtu() (rns.link method)":[[7,"RNS.Link.get_mtu",false]],"get_parts() (rns.resource method)":[[7,"RNS.Resource.get_parts",false]],"get_private_key() (rns.destination method)":[[7,"RNS.Destination.get_private_key",false]],"get_private_key() (rns.identity method)":[[7,"RNS.Identity.get_private_key",false]],"get_progress() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.get_progress",false]],"get_progress() (rns.resource method)":[[7,"RNS.Resource.get_progress",false]],"get_public_key() (rns.identity method)":[[7,"RNS.Identity.get_public_key",false]],"get_q() (rns.link method)":[[7,"RNS.Link.get_q",false]],"get_q() (rns.packet method)":[[7,"RNS.Packet.get_q",false]],"get_random_hash() (rns.identity static method)":[[7,"RNS.Identity.get_random_hash",false]],"get_remote_identity() (rns.link method)":[[7,"RNS.Link.get_remote_identity",false]],"get_request_id() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.get_request_id",false]],"get_response() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.get_response",false]],"get_response_time() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.get_response_time",false]],"get_rssi() (rns.link method)":[[7,"RNS.Link.get_rssi",false]],"get_rssi() (rns.packet method)":[[7,"RNS.Packet.get_rssi",false]],"get_rtt() (rns.packetreceipt method)":[[7,"RNS.PacketReceipt.get_rtt",false]],"get_segments() (rns.resource method)":[[7,"RNS.Resource.get_segments",false]],"get_snr() (rns.link method)":[[7,"RNS.Link.get_snr",false]],"get_snr() (rns.packet method)":[[7,"RNS.Packet.get_snr",false]],"get_status() (rns.packetreceipt method)":[[7,"RNS.PacketReceipt.get_status",false]],"get_status() (rns.requestreceipt method)":[[7,"RNS.RequestReceipt.get_status",false]],"get_transfer_size() (rns.resource method)":[[7,"RNS.Resource.get_transfer_size",false]],"has_path() (rns.transport static method)":[[7,"RNS.Transport.has_path",false]],"hash() (rns.destination static method)":[[7,"RNS.Destination.hash",false]],"hash_from_name_and_identity() (rns.destination static method)":[[7,"RNS.Destination.hash_from_name_and_identity",false]],"hops_to() (rns.transport static method)":[[7,"RNS.Transport.hops_to",false]],"identify() (rns.link method)":[[7,"RNS.Link.identify",false]],"identity (class in rns)":[[7,"RNS.Identity",false]],"inactive_for() (rns.link method)":[[7,"RNS.Link.inactive_for",false]],"interface_discovery_sources() (rns.reticulum static method)":[[7,"RNS.Reticulum.interface_discovery_sources",false]],"is_compressed() (rns.resource method)":[[7,"RNS.Resource.is_compressed",false]],"is_ready_to_send() (rns.channel.channel method)":[[7,"RNS.Channel.Channel.is_ready_to_send",false]],"keepalive (rns.link attribute)":[[7,"RNS.Link.KEEPALIVE",false]],"keepalive_timeout_factor (rns.link attribute)":[[7,"RNS.Link.KEEPALIVE_TIMEOUT_FACTOR",false]],"keysize (rns.identity attribute)":[[7,"RNS.Identity.KEYSIZE",false]],"link (class in rns)":[[7,"RNS.Link",false]],"link_mtu_discovery (rns.reticulum attribute)":[[7,"RNS.Reticulum.LINK_MTU_DISCOVERY",false]],"link_mtu_discovery() (rns.reticulum static method)":[[7,"RNS.Reticulum.link_mtu_discovery",false]],"load_private_key() (rns.destination method)":[[7,"RNS.Destination.load_private_key",false]],"load_private_key() (rns.identity method)":[[7,"RNS.Identity.load_private_key",false]],"load_public_key() (rns.identity method)":[[7,"RNS.Identity.load_public_key",false]],"mdu (rns.channel.channel property)":[[7,"RNS.Channel.Channel.mdu",false]],"messagebase (class in rns)":[[7,"RNS.MessageBase",false]],"minimum_bitrate (rns.reticulum attribute)":[[7,"RNS.Reticulum.MINIMUM_BITRATE",false]],"msgtype (rns.messagebase attribute)":[[7,"RNS.MessageBase.MSGTYPE",false]],"mtu (rns.reticulum attribute)":[[7,"RNS.Reticulum.MTU",false]],"next_hop() (rns.transport static method)":[[7,"RNS.Transport.next_hop",false]],"next_hop_interface() (rns.transport static method)":[[7,"RNS.Transport.next_hop_interface",false]],"no_data_for() (rns.link method)":[[7,"RNS.Link.no_data_for",false]],"no_inbound_for() (rns.link method)":[[7,"RNS.Link.no_inbound_for",false]],"no_outbound_for() (rns.link method)":[[7,"RNS.Link.no_outbound_for",false]],"pack() (rns.messagebase method)":[[7,"RNS.MessageBase.pack",false]],"packet (class in rns)":[[7,"RNS.Packet",false]],"packetreceipt (class in rns)":[[7,"RNS.PacketReceipt",false]],"pathfinder_m (rns.transport attribute)":[[7,"RNS.Transport.PATHFINDER_M",false]],"plain_mdu (rns.packet attribute)":[[7,"RNS.Packet.PLAIN_MDU",false]],"publish_blackhole_enabled() (rns.reticulum static method)":[[7,"RNS.Reticulum.publish_blackhole_enabled",false]],"ratchet_count (rns.destination attribute)":[[7,"RNS.Destination.RATCHET_COUNT",false]],"ratchet_expiry (rns.identity attribute)":[[7,"RNS.Identity.RATCHET_EXPIRY",false]],"ratchet_interval (rns.destination attribute)":[[7,"RNS.Destination.RATCHET_INTERVAL",false]],"ratchetsize (rns.identity attribute)":[[7,"RNS.Identity.RATCHETSIZE",false]],"rawchannelreader (class in rns)":[[7,"RNS.RawChannelReader",false]],"rawchannelwriter (class in rns)":[[7,"RNS.RawChannelWriter",false]],"recall() (rns.identity static method)":[[7,"RNS.Identity.recall",false]],"recall_app_data() (rns.identity static method)":[[7,"RNS.Identity.recall_app_data",false]],"register_announce_handler() (rns.transport static method)":[[7,"RNS.Transport.register_announce_handler",false]],"register_message_type() (rns.channel.channel method)":[[7,"RNS.Channel.Channel.register_message_type",false]],"register_request_handler() (rns.destination method)":[[7,"RNS.Destination.register_request_handler",false]],"remote_management_enabled() (rns.reticulum static method)":[[7,"RNS.Reticulum.remote_management_enabled",false]],"remove_message_handler() (rns.channel.channel method)":[[7,"RNS.Channel.Channel.remove_message_handler",false]],"remove_ready_callback() (rns.rawchannelreader method)":[[7,"RNS.RawChannelReader.remove_ready_callback",false]],"request() (rns.link method)":[[7,"RNS.Link.request",false]],"request_path() (rns.transport static method)":[[7,"RNS.Transport.request_path",false]],"requestreceipt (class in rns)":[[7,"RNS.RequestReceipt",false]],"required_discovery_value() (rns.reticulum static method)":[[7,"RNS.Reticulum.required_discovery_value",false]],"resend() (rns.packet method)":[[7,"RNS.Packet.resend",false]],"resource (class in rns)":[[7,"RNS.Resource",false]],"reticulum (class in rns)":[[7,"RNS.Reticulum",false]],"send() (rns.channel.channel method)":[[7,"RNS.Channel.Channel.send",false]],"send() (rns.packet method)":[[7,"RNS.Packet.send",false]],"set_default_app_data() (rns.destination method)":[[7,"RNS.Destination.set_default_app_data",false]],"set_delivery_callback() (rns.packetreceipt method)":[[7,"RNS.PacketReceipt.set_delivery_callback",false]],"set_link_closed_callback() (rns.link method)":[[7,"RNS.Link.set_link_closed_callback",false]],"set_link_established_callback() (rns.destination method)":[[7,"RNS.Destination.set_link_established_callback",false]],"set_packet_callback() (rns.destination method)":[[7,"RNS.Destination.set_packet_callback",false]],"set_packet_callback() (rns.link method)":[[7,"RNS.Link.set_packet_callback",false]],"set_proof_requested_callback() (rns.destination method)":[[7,"RNS.Destination.set_proof_requested_callback",false]],"set_proof_strategy() (rns.destination method)":[[7,"RNS.Destination.set_proof_strategy",false]],"set_ratchet_interval() (rns.destination method)":[[7,"RNS.Destination.set_ratchet_interval",false]],"set_remote_identified_callback() (rns.link method)":[[7,"RNS.Link.set_remote_identified_callback",false]],"set_resource_callback() (rns.link method)":[[7,"RNS.Link.set_resource_callback",false]],"set_resource_concluded_callback() (rns.link method)":[[7,"RNS.Link.set_resource_concluded_callback",false]],"set_resource_started_callback() (rns.link method)":[[7,"RNS.Link.set_resource_started_callback",false]],"set_resource_strategy() (rns.link method)":[[7,"RNS.Link.set_resource_strategy",false]],"set_retained_ratchets() (rns.destination method)":[[7,"RNS.Destination.set_retained_ratchets",false]],"set_timeout() (rns.packetreceipt method)":[[7,"RNS.PacketReceipt.set_timeout",false]],"set_timeout_callback() (rns.packetreceipt method)":[[7,"RNS.PacketReceipt.set_timeout_callback",false]],"should_use_implicit_proof() (rns.reticulum static method)":[[7,"RNS.Reticulum.should_use_implicit_proof",false]],"sign() (rns.destination method)":[[7,"RNS.Destination.sign",false]],"sign() (rns.identity method)":[[7,"RNS.Identity.sign",false]],"stale_grace (rns.link attribute)":[[7,"RNS.Link.STALE_GRACE",false]],"stale_time (rns.link attribute)":[[7,"RNS.Link.STALE_TIME",false]],"teardown() (rns.link method)":[[7,"RNS.Link.teardown",false]],"to_file() (rns.identity method)":[[7,"RNS.Identity.to_file",false]],"track_phy_stats() (rns.link method)":[[7,"RNS.Link.track_phy_stats",false]],"transport (class in rns)":[[7,"RNS.Transport",false]],"transport_enabled() (rns.reticulum static method)":[[7,"RNS.Reticulum.transport_enabled",false]],"truncated_hash() (rns.identity static method)":[[7,"RNS.Identity.truncated_hash",false]],"truncated_hashlength (rns.identity attribute)":[[7,"RNS.Identity.TRUNCATED_HASHLENGTH",false]],"unpack() (rns.messagebase method)":[[7,"RNS.MessageBase.unpack",false]],"validate() (rns.identity method)":[[7,"RNS.Identity.validate",false]]},"objects":{"RNS":[[7,0,1,"","Buffer"],[7,0,1,"","Destination"],[7,0,1,"","Identity"],[7,0,1,"","Link"],[7,0,1,"","MessageBase"],[7,0,1,"","Packet"],[7,0,1,"","PacketReceipt"],[7,0,1,"","RawChannelReader"],[7,0,1,"","RawChannelWriter"],[7,0,1,"","RequestReceipt"],[7,0,1,"","Resource"],[7,0,1,"","Reticulum"],[7,0,1,"","Transport"]],"RNS.Buffer":[[7,1,1,"","create_bidirectional_buffer"],[7,1,1,"","create_reader"],[7,1,1,"","create_writer"]],"RNS.Channel":[[7,0,1,"","Channel"]],"RNS.Channel.Channel":[[7,1,1,"","add_message_handler"],[7,1,1,"","is_ready_to_send"],[7,2,1,"","mdu"],[7,1,1,"","register_message_type"],[7,1,1,"","remove_message_handler"],[7,1,1,"","send"]],"RNS.Destination":[[7,3,1,"","RATCHET_COUNT"],[7,3,1,"","RATCHET_INTERVAL"],[7,1,1,"","accepts_links"],[7,1,1,"","announce"],[7,1,1,"","app_and_aspects_from_name"],[7,1,1,"","clear_default_app_data"],[7,1,1,"","create_keys"],[7,1,1,"","decrypt"],[7,1,1,"","deregister_request_handler"],[7,1,1,"","enable_ratchets"],[7,1,1,"","encrypt"],[7,1,1,"","enforce_ratchets"],[7,1,1,"","expand_name"],[7,1,1,"","get_private_key"],[7,1,1,"","hash"],[7,1,1,"","hash_from_name_and_identity"],[7,1,1,"","load_private_key"],[7,1,1,"","register_request_handler"],[7,1,1,"","set_default_app_data"],[7,1,1,"","set_link_established_callback"],[7,1,1,"","set_packet_callback"],[7,1,1,"","set_proof_requested_callback"],[7,1,1,"","set_proof_strategy"],[7,1,1,"","set_ratchet_interval"],[7,1,1,"","set_retained_ratchets"],[7,1,1,"","sign"]],"RNS.Identity":[[7,3,1,"","CURVE"],[7,3,1,"","KEYSIZE"],[7,3,1,"","RATCHETSIZE"],[7,3,1,"","RATCHET_EXPIRY"],[7,3,1,"","TRUNCATED_HASHLENGTH"],[7,1,1,"","current_ratchet_id"],[7,1,1,"","decrypt"],[7,1,1,"","encrypt"],[7,1,1,"","from_bytes"],[7,1,1,"","from_file"],[7,1,1,"","full_hash"],[7,1,1,"","get_private_key"],[7,1,1,"","get_public_key"],[7,1,1,"","get_random_hash"],[7,1,1,"","load_private_key"],[7,1,1,"","load_public_key"],[7,1,1,"","recall"],[7,1,1,"","recall_app_data"],[7,1,1,"","sign"],[7,1,1,"","to_file"],[7,1,1,"","truncated_hash"],[7,1,1,"","validate"]],"RNS.Link":[[7,3,1,"","CURVE"],[7,3,1,"","ESTABLISHMENT_TIMEOUT_PER_HOP"],[7,3,1,"","KEEPALIVE"],[7,3,1,"","KEEPALIVE_TIMEOUT_FACTOR"],[7,3,1,"","STALE_GRACE"],[7,3,1,"","STALE_TIME"],[7,1,1,"","get_age"],[7,1,1,"","get_channel"],[7,1,1,"","get_establishment_rate"],[7,1,1,"","get_expected_rate"],[7,1,1,"","get_mdu"],[7,1,1,"","get_mode"],[7,1,1,"","get_mtu"],[7,1,1,"","get_q"],[7,1,1,"","get_remote_identity"],[7,1,1,"","get_rssi"],[7,1,1,"","get_snr"],[7,1,1,"","identify"],[7,1,1,"","inactive_for"],[7,1,1,"","no_data_for"],[7,1,1,"","no_inbound_for"],[7,1,1,"","no_outbound_for"],[7,1,1,"","request"],[7,1,1,"","set_link_closed_callback"],[7,1,1,"","set_packet_callback"],[7,1,1,"","set_remote_identified_callback"],[7,1,1,"","set_resource_callback"],[7,1,1,"","set_resource_concluded_callback"],[7,1,1,"","set_resource_started_callback"],[7,1,1,"","set_resource_strategy"],[7,1,1,"","teardown"],[7,1,1,"","track_phy_stats"]],"RNS.MessageBase":[[7,3,1,"","MSGTYPE"],[7,1,1,"","pack"],[7,1,1,"","unpack"]],"RNS.Packet":[[7,3,1,"","ENCRYPTED_MDU"],[7,3,1,"","PLAIN_MDU"],[7,1,1,"","get_q"],[7,1,1,"","get_rssi"],[7,1,1,"","get_snr"],[7,1,1,"","resend"],[7,1,1,"","send"]],"RNS.PacketReceipt":[[7,1,1,"","get_rtt"],[7,1,1,"","get_status"],[7,1,1,"","set_delivery_callback"],[7,1,1,"","set_timeout"],[7,1,1,"","set_timeout_callback"]],"RNS.RawChannelReader":[[7,1,1,"","__init__"],[7,1,1,"","add_ready_callback"],[7,1,1,"","remove_ready_callback"]],"RNS.RawChannelWriter":[[7,1,1,"","__init__"]],"RNS.RequestReceipt":[[7,1,1,"","concluded"],[7,1,1,"","get_progress"],[7,1,1,"","get_request_id"],[7,1,1,"","get_response"],[7,1,1,"","get_response_time"],[7,1,1,"","get_status"]],"RNS.Resource":[[7,1,1,"","advertise"],[7,1,1,"","cancel"],[7,1,1,"","get_data_size"],[7,1,1,"","get_hash"],[7,1,1,"","get_parts"],[7,1,1,"","get_progress"],[7,1,1,"","get_segments"],[7,1,1,"","get_transfer_size"],[7,1,1,"","is_compressed"]],"RNS.Reticulum":[[7,3,1,"","ANNOUNCE_CAP"],[7,3,1,"","LINK_MTU_DISCOVERY"],[7,3,1,"","MINIMUM_BITRATE"],[7,3,1,"","MTU"],[7,1,1,"","blackhole_sources"],[7,1,1,"","get_instance"],[7,1,1,"","interface_discovery_sources"],[7,1,1,"","link_mtu_discovery"],[7,1,1,"","publish_blackhole_enabled"],[7,1,1,"","remote_management_enabled"],[7,1,1,"","required_discovery_value"],[7,1,1,"","should_use_implicit_proof"],[7,1,1,"","transport_enabled"]],"RNS.Transport":[[7,3,1,"","PATHFINDER_M"],[7,1,1,"","await_path"],[7,1,1,"","deregister_announce_handler"],[7,1,1,"","has_path"],[7,1,1,"","hops_to"],[7,1,1,"","next_hop"],[7,1,1,"","next_hop_interface"],[7,1,1,"","register_announce_handler"],[7,1,1,"","request_path"]]},"objnames":{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","property","Python property"],"3":["py","attribute","Python attribute"]},"objtypes":{"0":"py:class","1":"py:method","2":"py:property","3":"py:attribute"},"terms":{"":[0,2,5,6,9,10,11],"0":[0,2,5,7,9,10,11],"00":[9,10],"00000000":9,"00000100":9,"00000111":9,"01":9,"01010000":9,"02":2,"05":0,"0536":10,"06915":5,"08":[0,10],"0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1":10,"0x0101":0,"0x20":0,"0x7d":0,"0x7e":0,"0x91c421ddfb8a30a49a71d63447ddb54cebe3465":8,"0xf000":[0,7],"1":[0,2,5,7,9,10],"10":[5,9,10],"100":[0,5,9],"1000":0,"10000000":9,"1024":0,"11":9,"115":9,"115200":[0,5,10],"1178a8f1fad405bf2ad153bf5036bdfd":10,"118":5,"12":[2,5,10],"1200":9,"125":5,"125000":5,"127":5,"128":[6,7,9],"13":10,"13425ec15b621c1d928589718000d814":[6,9],"14":5,"15":5,"150":[5,10],"150m":5,"15m":10,"16":[5,6,9,10],"1625":5,"1625000":5,"167":9,"17":10,"1726dbad538775b5bf9b0ea25a4079c8":10,"18":10,"1800":7,"187":10,"1b03013c25f1c2ca068a4f080b844a10":10,"1h":10,"2":[0,2,5,7,9,10],"20":[5,9,10],"200":[5,10],"201":5,"2023":[2,10],"2026":2,"21":2,"22":5,"2225fdeecaf6e2db4556c3c2d7637294":10,"23":10,"2316":10,"23h":10,"24":[5,10],"2400000000":5,"25":[0,4,11],"255":[5,10],"25519":7,"256":[5,6,7,9,10,11],"2592000":7,"27":10,"29":5,"297":[9,11],"29716":5,"2b489d06eaf7c543808c76a5332a447d":10,"2b9ec651326d9bc274119054c70fb75":10,"2d03725b327348980d570f739a3a5708":10,"2d882c5586e548d79b5af27bca1776dc":10,"2f":0,"2owjajquafianpecac":2,"3":[0,2,5,9,10,11],"30":[5,7,10],"30602def3b3506a28ed33db6f60cc6c9":10,"32":[2,7,9],"3278":5,"32m":10,"33":5,"34":5,"360":[5,7],"3600":[0,5],"37428":10,"37429":10,"38":10,"383":7,"3865":10,"399ea050ce0eed1816c300bcb0840938":10,"3a4f8b9c1d2e3f4g5h6i7j8k9l0m1n2o":10,"3b87":5,"4":[7,9,10],"40m":10,"4242":[2,5],"4251":5,"42671":5,"430":9,"4343":5,"44":11,"44318":5,"45":[0,9],"46":10,"464":7,"465":9,"469":10,"48555":5,"49":10,"49555":5,"4965":[2,10],"4e":5,"4faf1b2e0a077e6a9d92fa051f256038":9,"4ghz":5,"5":[0,5,7,9,10,11],"500":[5,7,9,11],"5001":5,"51":[5,9],"512":[5,7,9,11],"52":10,"521c87a83afb8f29e4455e77930b973b":10,"5245a8efe1788c6a1cd36144a270e13b":10,"55":5,"56":10,"564":0,"56m":10,"5757":5,"5858":5,"59":10,"5caf":5,"5d78":5,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":5,"6":[5,7,10],"60":[0,5],"600":5,"63":10,"64":[2,9,10],"68a4aa91ac350c4087564e8a69f84e86":10,"7":[2,5,9,10],"71e5":5,"72":5,"720":[5,7],"7200":5,"73":[5,10],"73cbd378bb0286ed11a707c13447bb1":10,"74":10,"74195":5,"781":10,"7822":10,"7a55144adf826958a9529a3bcf08b149":10,"8":[0,5,10],"80":[8,10],"8001":5,"809":10,"83":[9,10],"84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w":8,"86":10,"865":5,"865600000":5,"867":5,"867200000":5,"868":9,"88":5,"89":5,"8dd57a738226809646089335a6b03695":10,"9":[2,7,10],"900":9,"9037":10,"921600":10,"941bed5e228775e5a8079fc38b1ccf3f":10,"96":9,"9600":0,"984b74a3f768bef236af4371e6f248cd":10,"99":9,"99714":5,"9fb6d773498fb3feda407ed8ef2c3229":10,"9h":10,"A":[0,2,5,6,7,9,10],"And":0,"As":[2,3,5,7,8,9,10,11],"At":[2,9],"Be":[7,10],"But":[8,9],"By":[0,2,5,7,9,10],"For":[2,5,6,7,9,10,11],"IN":[0,7],"If":[0,2,3,5,6,7,8,9,10,11],"In":[0,2,3,5,6,7,9,10,11],"It":[0,2,3,5,6,7,9,10,11],"No":[0,2,5,6,9,10,11],"Not":4,"Of":[6,9],"On":[0,2,5,6,10],"One":[2,3,7,9],"Or":[5,10,11],"That":9,"The":[0,2,3,4,5,6,7,8,11],"Then":[0,2],"There":[2,6,9,10],"These":[2,5,6,7,9,10],"To":[0,2,3,5,6,9,10],"Will":7,"With":[4,5,6,9,10],"_":9,"__":9,"______":9,"_______":9,"________":9,"________________":9,"__future__":0,"__init__":[0,7],"__main__":0,"__name__":0,"__str__":0,"a4d":5,"a79f":5,"aarch64":2,"ab":0,"abil":[2,3,10,11],"abl":[0,2,5,7,9,10],"abort":[0,5],"about":[0,2,3,5,6,7,9,10],"abov":[2,3,5,9,10],"absolut":[5,8,11],"abstract":[6,7,9],"abstractmethod":7,"abund":3,"abus":10,"accept":[5,7,8,9,10],"accept_al":[0,7],"accept_app":7,"accept_non":7,"accepts_link":7,"access":[2,4,5,6,7,10],"access_point":[5,6],"accommod":[7,9],"accord":[0,2,6,9],"accordingli":[0,5],"account":6,"achiev":[2,5,6,7,9],"acknowledg":[6,11],"across":[0,3,6,7,9,10],"act":[2,5,7,9,10],"action":[0,10],"activ":[0,2,5,7,9],"actor":[9,10],"actual":[0,2,5,6,9,10],"ad":[0,3,4,5,6,7,9,10,11],"adapt":[2,3],"add":[0,2,5,6,7,10],"add_argu":0,"add_message_handl":[0,7],"add_ready_callback":7,"addit":[2,3,5,6,7,9,10,11],"addition":[2,3,5,9],"addr":10,"address":[0,2,4,5,7,9,10,11],"adher":7,"adjust":[2,7],"admin":5,"administr":[6,9,10],"adopt":9,"adress":[7,9],"advanc":9,"advantag":7,"advers":11,"adversari":[2,6,8],"advertis":[0,5,7],"advic":8,"advis":[5,9],"ae":[7,9,11],"af73":5,"affect":[2,5],"afford":6,"after":[0,2,5,6,7,9,10],"again":[2,5,9,10],"against":[2,5,9],"agenc":9,"agent":9,"agnost":[6,9],"agnostic":9,"ago":10,"ahead":6,"aim":[2,4,9],"air":[2,3],"airmax":3,"airtim":[5,6],"airtime_limit_long":5,"airtime_limit_short":5,"akin":9,"algorithm":6,"alic":9,"align":[2,10],"aliv":[7,9],"all":[0,2,3,4,5,6,7,8,9,10,11],"allevi":3,"alloc":[5,6,7,9,10],"allow":[0,2,3,5,6,7,9,10,11],"allow_al":[0,7],"allow_list":7,"allow_non":7,"allowed_hash":10,"allowed_ident":10,"allowed_list":7,"almost":[3,5,9,10],"alon":5,"along":[5,7,9,10],"alongsid":6,"alreadi":[0,2,3,6,7,9,10],"also":[0,2,3,4,5,6,7,9,10,11],"alter":[2,7,9],"altern":[0,2,5,10],"although":[2,9,11],"alwai":[2,5,6,7,9,10],"amateur":[5,11],"amount":[0,2,5,6,7,9,11],"amsterdam":[2,5,10],"an":[0,2,3,5,6,7,9,10,11],"analyt":8,"android":[4,5,10],"ani":[0,2,3,5,6,7,8,9,10,11],"annot":0,"annouce_cap":5,"announc":[4,6,7,10],"announce_cap":[5,7],"announce_handl":0,"announce_interv":5,"announce_packet_hash":7,"announce_rate_grac":5,"announce_rate_penalti":5,"announce_rate_target":5,"announced_ident":[0,7],"announceloop":0,"announcesampl":0,"anonym":[2,6,7,9,11],"anoth":[2,6,7,9,10],"answer":[9,10],"antenna":3,"anymor":2,"anyon":[0,2,3,5,6,7,9,10],"anyth":[2,3,5,9,10,11],"anywher":[0,5],"ap":5,"api":[2,4,9,11],"apk":2,"app":[0,2,7,9],"app_and_aspects_from_nam":7,"app_data":[0,7],"app_nam":[0,7],"app_timeout":0,"append":[0,9],"appli":[5,7,9],"applic":[0,2,5,6,7,9,10,11],"approach":[2,3,6,9,10],"appropri":[5,6],"approv":[6,9],"approxim":[5,10],"april":2,"apt":2,"ar":[0,2,3,5,6,7,8,9,10,11],"arbitrari":[7,9,10,11],"arch":2,"architect":8,"architectur":2,"area":[2,3,5,6,9,11],"arg":0,"argon":0,"argpars":0,"argument":[0,7,10],"argumentpars":0,"arm64":4,"around":[5,9],"arrai":2,"arriv":[0,9],"arx":10,"ask":[0,2,3,7],"aspect":[0,2,3,5,6,7,9,10],"aspect_filt":[0,7],"assign":[0,6,9,10],"associ":[7,9,10],"assum":[5,6,9],"assumpt":[6,8],"asymmetr":[9,10,11],"asynchron":6,"attach":10,"attached_interfac":7,"attack":2,"attain":2,"attempt":[0,2,3,7,10],"attent":8,"attribut":7,"atx":10,"audit":11,"auth":10,"authent":[2,5,6,7,9,10,11],"author":[9,10],"authorit":9,"auto":[2,3,4,7,9,10],"auto_compress":7,"autoconfigur":11,"autoconnect_discovered_interfac":[5,10],"autodiscov":5,"autoinstal":[3,10],"autointerfac":[2,3,5,10],"autom":[2,3,4,8,9],"automat":[0,2,5,6,7,9,10,11],"autonom":[6,9],"autonomi":11,"avail":[0,2,3,4,5,6,7,9,10,11],"averag":9,"avoid":[3,9,10],"awai":[0,2,5,9,10],"await_path":7,"awar":[2,5,9],"ax":[4,11],"ax25kissinterfac":5,"b":[0,10],"b32":5,"back":[0,5,9,11],"backbon":[2,3,4,6,10],"backboneinterfac":[2,5,10],"backend":[5,9],"background":[2,5,10],"backhaul":[3,6],"backup":10,"balanc":5,"band":[3,9],"bandwidth":[2,5,6,7,9,10,11],"bare":[0,5],"barrier":[5,9],"base":[4,5,6,7,9,10,11],"base32":[5,10],"base64":10,"bash":5,"basi":[5,7,9,10,11],"basic":[0,2,4,5,6,7,10],"baud":[5,10],"baud_flash":10,"baudrat":0,"bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6":8,"bc7291552be7a58f361522990465165c":10,"beacon":5,"becaus":[6,9],"becki":0,"becom":[0,2,5,6,7,9],"been":[0,2,3,5,6,7,8,9,10,11],"befor":[0,2,5,6,7,8,9,10],"begin":[0,3,7],"begun":7,"behalf":[5,6],"behav":3,"behaviour":[2,5,10],"behind":[2,5,8,9],"being":[2,5,7,9],"beings":9,"belief":9,"belong":[6,9,10],"below":[2,3,5,10],"benefici":[5,10],"best":[2,6,9,11],"better":[2,5,6,8,9],"between":[0,5,6,7,9,10],"bi":[7,9],"bidirect":9,"billion":[6,9],"bin":[2,5,10],"binari":[0,2,5,6,7,9,10],"bind":5,"bit":[0,2,5,6,7,9,10,11],"bitcoin":8,"bitrat":[0,5,7],"blackhol":[2,4,6,7,9],"blackhole_sourc":[7,10],"blackholed_ident":10,"blackholeupdat":10,"ble":5,"blindli":10,"blob":[0,9],"block":[2,5,6,7,9,10],"blocklist":10,"bluetooth":10,"board":[2,4,5,9,11],"bogu":5,"boil":3,"bookworm":4,"bool":7,"boot":[2,10],"bootstrap":[4,5,10],"bootstrap_onli":[2,5],"both":[0,2,3,5,6,7,9,10,11],"bounc":2,"bound":6,"boundari":[5,6,9],"box":3,"break":[2,7,9,11],"breath":2,"breviti":10,"bridg":[3,5],"briefli":[3,9],"bring":[5,10],"brittl":2,"broad":[2,3],"broadcast":[2,4,5,6,7,9,10],"broadcast_destin":0,"broadcastloop":0,"broader":9,"broken":2,"brought":[5,10],"browser":2,"buffer":[4,5,7,11],"bufferedread":7,"bufferedrwpair":7,"bufferedwrit":7,"bufferexampl":0,"bug":[8,11],"build":[0,3,4,5,9,11],"built":[2,5,6,9,10,11],"bundl":0,"bureaucrat":11,"burst":5,"bw":10,"bypass":8,"byte":[0,6,7,9,10,11],"bytes":0,"c":[0,10],"c50cc4e4f7838b6c31f60ab9032cbc62":10,"c89b4da064bf66d280f0e4d8abfd9806":10,"cabl":5,"cach":[5,6,10],"calcul":[6,7,9,10],"call":[0,6,7,9,11],"callabl":[0,7],"callback":[0,7],"callsign":5,"can":[0,2,3,4,5,6,7,8,9,10],"cancel":7,"candid":6,"cannot":[0,2,5,6,11],"cap":5,"capabl":[0,5,6,9],"capac":[2,3,5,6,7,9],"car":6,"carambola":0,"care":[2,6,7,10,11],"carefulli":2,"cargo_build_target":2,"carri":[5,6,7,9,10,11],"carrier":[6,11],"case":[0,2,3,5,6,9,10],"cat":10,"categori":3,"caus":[2,5],"caution":5,"caveat":4,"cb":[7,9],"cbc":[9,11],"cdma":5,"cell":6,"censor":[9,10],"censorship":[9,11],"central":[2,3,5,6,9,10],"centralis":9,"certain":[0,5,6,8,9,10],"chain":5,"challeng":[2,9],"chanc":3,"chang":[0,2,5,7,9,10,11],"channel":[2,4,5,6,7,8,9,11],"channelarg":0,"channelexampl":0,"chapter":[2,3,5,6,7,9,10,11],"charact":[0,5],"characterist":[5,6,9],"charter":9,"cheap":[3,5,9],"cheapli":2,"check":[0,2,7,9,10],"checksum":[7,11],"choic":[2,6],"choos":[0,2,5,9],"chose":9,"chosen":9,"chunk":0,"cific":5,"ciphertext":7,"ciphertext_token":7,"circumst":[8,9],"cl":0,"claim":9,"class":[0,6,7,11],"clear":[0,5,7,10],"clear_default_app_data":7,"clear_screen":0,"client":[0,2,3,4,7,10],"client_buffer_readi":0,"client_connect":0,"client_disconnect":0,"client_ident":0,"client_loop":0,"client_message_receiv":0,"client_packet_receiv":0,"client_request":0,"clone":9,"close":[0,6,7,10],"closed_callback":7,"closer":9,"closest":9,"cloud":5,"cluster":9,"co":[3,5,11],"code":[2,3,4,5,6,8,10],"codingr":5,"coexist":6,"collabor":9,"collaps":2,"collect":8,"collis":6,"com":[0,8],"combin":[2,4,9],"come":[2,5,6,9],"comma":[5,10],"command":[0,2,5,10],"comment":[5,10],"commis":2,"commit":2,"common":[0,2,3,4,6,9,10,11],"commonli":[3,5],"commun":[0,2,4,5,6,7,8,9,10,11],"communica":5,"compar":6,"compat":[0,2,3,5,7,9,10],"compil":2,"complet":[0,2,3,5,6,7,9,10,11],"complex":[2,5,8,9],"compli":6,"compon":[3,8,9],"compos":9,"comprehens":8,"compress":[0,7,9,10,11],"compromis":9,"comput":[2,5,9,11],"computation":[5,10],"concaten":7,"conceiv":[2,3],"concept":[4,9,10],"conceptu":4,"concert":9,"conclud":[0,7],"concurr":[3,9,10],"condit":[2,9,11],"conf":2,"config":[0,2,5,6,10],"configarg":0,"configdir":7,"configpath":0,"configur":[0,2,3,4,6,7,9,11],"configuraion":3,"configure_devic":0,"confirm":[6,9,11],"conflict":[2,6],"confus":[3,9],"congest":9,"conjunct":5,"connect":[0,3,4,7,8,9,10,11],"consequ":[6,9],"conserv":5,"consid":[0,2,5,7,9,10,11],"consider":[4,9],"consist":9,"consol":10,"constant":7,"constantli":9,"constitut":9,"constrain":[6,7],"construct":[9,11],"constructor":0,"consum":[6,7],"consumpt":6,"contact":[6,9],"contain":[0,5,6,7,9,10],"contend":9,"content":[0,2,6,10],"context":[2,9,10],"contin":0,"continu":[5,7,8,10,11],"contribut":[4,6,8],"control":[0,2,3,4,6,7,9,10,11],"convei":0,"conveni":[0,10],"convent":[0,6],"converg":[2,6,9],"convers":9,"cook":2,"coordin":[5,6,7,9,11],"copi":10,"core":[6,9,10,11],"correct":[0,5,6,9],"correctli":[0,6],"correspond":[6,9],"cost":[3,5,9,11],"could":[0,2,5,6,7,9,10,11],"count":9,"counter":0,"cours":[2,5,6,9],"cover":[2,3,6,9,11],"coverag":6,"cpu":[0,5,6,9],"cpuinfo":10,"cr":10,"creat":[0,4,5,6,7,10,11],"create_bidirectional_buff":[0,7],"create_kei":7,"create_read":7,"create_receipt":[0,7],"create_writ":7,"creation":[6,9,10,11],"creator":9,"credenti":[5,9],"critic":[6,9,10],"cross":5,"crucial":6,"cryptograph":[2,4,5,6,10,11],"cryptographi":[2,9,11],"ctrl":0,"cull":7,"curl":5,"current":[0,2,4,5,7,10],"current_download":0,"current_filenam":0,"current_ratchet_id":7,"curv":[6,7,9,11],"curve25519":[6,7,9,11],"custom":[3,4,7,9,11],"custom_network_nam":5,"customis":5,"d":10,"d56a4fa02c0a77b3575935aedd90bdb2":10,"daemon":[0,2,5,7,10],"dai":7,"data":[0,2,3,4,5,6,7,9,11],"data_buff":0,"data_port":5,"databas":10,"databit":[0,5,10],"datacent":2,"datar":5,"date":[0,2,10],"datetim":0,"db":[0,10],"dbm":[0,5,10],"de":2,"deal":5,"debian":[4,9,10],"debug":[2,10],"decad":[3,8],"decentr":[2,5,10],"decentralis":11,"decid":[5,6,7,9],"decim":5,"decis":[5,6,9],"declar":9,"decod":[0,5,10],"decreas":10,"decrypt":[5,6,7,9,10],"dedic":[5,9],"deep":2,"def":0,"default":[0,2,3,5,6,7,9,10],"default_ifac_s":0,"defin":[0,5,7,9,10],"definit":[0,2,9,10],"defunct":10,"degrad":6,"degre":5,"delai":[2,5,9,10],"deleg":9,"delimit":0,"deliv":[0,2,6,7],"deliveri":[0,2,6,7,11],"demand":7,"demonstr":[0,2,5],"depend":[0,3,4,5,6,7,9,10],"deploi":9,"deregist":7,"deregister_announce_handl":7,"deregister_request_handl":7,"deriv":[2,6,7,9,11],"describ":[3,5,7,9],"descript":[0,10],"descriptor":0,"deseri":0,"deserializ":0,"design":[2,3,5,6,8,9,10,11],"desir":[0,3,5,9],"desktop":5,"dest_len":0,"destin":[0,2,4,7,10],"destination_1":0,"destination_2":0,"destination_clos":0,"destination_hash":[0,7,10],"destination_hexhash":0,"detach":5,"detail":[0,2,4,5,7,10,11],"detect":0,"determin":[2,6,7,9],"detriment":10,"dev":[0,2,5,10],"devel":2,"develop":[3,4,7,8,9,11],"devic":[0,2,4,5,6,7,9,10],"dh":7,"dhcp":[3,5,6,10],"dict":0,"dictat":10,"dictionari":10,"did":0,"differ":[0,2,3,5,6,7,9,10,11],"diffi":[6,9],"difficult":[2,3,10],"difficulti":[5,10],"digit":[2,3,9,11],"dir":0,"dire":3,"direct":[0,2,3,6,7,9,10],"direction":9,"directli":[2,3,5,6,7,9,10,11],"directori":[0,2,5,6,10],"disabl":[5,9,10],"disappear":[5,10],"disassoci":9,"discard":[2,7,9],"disconnect":[0,2,5],"discov":[2,4,5,6,7,9],"discover":[2,4,10],"discover_interfac":10,"discoveri":[2,4,7,9,10],"discovery_bandwidth":5,"discovery_encrypt":5,"discovery_frequ":5,"discovery_modul":5,"discovery_nam":5,"discovery_port":5,"discovery_scop":5,"discovery_stamp_valu":5,"discrimin":6,"discuss":[2,3,9],"disk":[0,7,10],"displai":[0,5,6,9,10],"disrupt":5,"dissolv":6,"distanc":[3,9,10],"distant":[2,7,9],"distinct":[5,6,9],"distinguish":[6,9],"distribut":[0,2,6,7,9,10,11],"dive":2,"divid":7,"divmod":0,"dn":[3,5],"dnf":2,"do":[0,2,3,5,6,7,9,10],"document":[2,7,9,10],"doe":[0,2,3,4,5,7,9,10],"doesn":[5,6],"domain":[2,5,9,10],"don":[0,2,6,7,9,10],"donat":4,"done":[0,2,5,9,10],"dot":[9,10],"doubt":2,"dowload":2,"down":[0,3,5,7,10],"download":[0,2,5,6,10],"download_began":0,"download_conclud":0,"download_finish":0,"download_start":0,"download_tim":0,"downstream":10,"drastic":10,"drive":8,"driver":[10,11],"droid":2,"drop":[5,6,7,9,10],"dsrdtr":0,"dual":[3,10],"dublin":10,"due":0,"dump":10,"duplex":[9,11],"durat":10,"dynam":[2,5,10],"dysfunct":8,"e":[0,10],"e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790":10,"e702c42ba8":10,"e7536ee90bd4a440e130490b87a25124":10,"each":[0,2,5,6,7,9,10],"earlier":9,"eas":[5,9],"easi":[2,3,5,9,10,11],"easier":[2,5,6,10,11],"easiest":[2,3,5,9],"easili":[2,5,6,9,10,11],"eastern":9,"ecdh":[9,11],"echo":4,"echo_destin":0,"echo_request":0,"ecosystem":[2,5,9,10],"ed25519":[9,11],"edit":[2,10],"eeprom":10,"effect":[5,9,10],"effici":[0,2,5,6,7,9,10,11],"effort":3,"eg":10,"ei":0,"either":[2,3,6,7,9,10],"elaps":5,"element":6,"elif":0,"elimin":6,"ellipt":[6,7,9,11],"els":[0,2,6,8,9,11],"elsewher":2,"embed":3,"emploi":[3,9],"empow":11,"empti":0,"emptor":4,"emul":2,"enabl":[0,2,3,4,6,7,9,10,11],"enable_ratchet":7,"enable_remote_manag":10,"enable_transport":[5,9,10],"encapsul":[5,11],"encod":[0,7,10],"encount":[2,6],"encourag":2,"encrypt":[0,2,5,6,7,9,10,11],"encrypted_mdu":7,"end":[0,5,6,7,9,11],"endless":5,"endpoint":[0,6,7,9],"energi":2,"enforc":[5,7,9,10],"enforce_ratchet":7,"engin":[2,8],"enhanc":9,"enough":[2,3,5,9],"ensur":[0,2,5,6,7,9,10,11],"ensurepath":2,"enter":[0,10],"entir":[0,2,6,7,9,10],"entiti":[6,9,10],"entri":[0,2,9,10],"entrypoint":[4,5,10],"enumer":0,"envelop":7,"environ":[2,5,6,8,9],"environment":9,"environmentlogg":9,"eof":5,"ephemer":[6,7,9,11],"epub":4,"equal":[6,7,9],"equip":[5,6,9],"equival":5,"erron":8,"error":[0,2,5,8,10],"esc":0,"esc_mask":0,"escap":0,"esp32":3,"especi":[2,3,5],"essenti":[2,5,9,10],"establish":[0,2,5,6,7,10,11],"established_callback":7,"establishment_timeout_per_hop":7,"etc":10,"eth0":5,"eth1":5,"ethereum":8,"ethernet":[2,4,5,6,9,11],"even":[0,2,5,6,7,9,10,11],"event":5,"eventu":7,"ever":9,"everi":[0,2,5,6,7,9,10],"everydai":2,"everyon":[2,8,9],"everyth":[0,6,8,9],"evolv":[6,9],"exact":[3,5,9],"exactli":[7,9],"exampl":[2,3,4,6,7,9,10,11],"example_util":0,"exampleannouncehandl":0,"exampleconfig":[2,10],"exampleinterfac":0,"exce":[0,5,7],"except":[0,5,7],"excess":[5,10],"exchang":[6,7,9,11],"exclud":[7,9],"exclus":2,"execstart":10,"execstartpr":10,"execut":[0,2,5,7,10],"exhaust":[3,9,10],"exist":[0,2,3,5,6,9,10,11],"exit":[0,5,7,10],"expand":[6,9,11],"expand_nam":7,"expect":[0,5,7,8,9,10],"expens":[3,5],"experi":[2,6,9],"experienc":0,"experiment":[2,11],"expir":5,"expiri":[5,7],"explain":[3,7],"explan":[9,10],"explicit":7,"explicitli":[5,6,9,10],"explor":[0,9,11],"export":[2,10],"expos":[5,7,10],"exposur":5,"extend":[0,7],"extens":[5,11],"extern":[0,2,5,7,10,11],"extra":[2,5,10],"extract":10,"extrem":[2,9,10,11],"f":[0,2,10],"f4":5,"f53a1c4278e0726bb73fcc623d6ce763":10,"fabric":6,"face":[2,5],"facilit":[2,9],"fact":[2,5,11],"factor":[5,7,10],"fail":[0,2,5,7],"failed_callback":[0,7],"failur":[2,5,7],"fake":10,"fals":[0,5,6,7],"famili":2,"far":[2,6,9],"fashion":8,"fast":[4,5,6,7,9],"faster":[2,5,9],"fastest":[5,9],"favor":2,"fe80":2,"featur":[2,5,6,7,8,9,11],"feder":[9,10],"fedora":2,"feed":[2,7],"feedback":[0,4],"feel":2,"fernet":9,"fetch":[5,10],"few":[2,3,5,6,9,10,11],"fewer":7,"ff":10,"fi":8,"fiber":3,"fibr":11,"field":9,"file":[0,2,3,5,6,7,9,10,11],"file_resourc":0,"file_s":0,"filelist":0,"filelist_data":0,"filelist_receiv":0,"filelist_timeout_job":0,"filenam":0,"filetransf":[4,7],"filter":[0,6,9,10],"final":[0,7,9],"find":[4,5,9,10],"find_spec":0,"fine":5,"firewal":[2,5,6],"firmwar":[2,3,9,10],"firmware_hash":10,"first":[0,2,5,6,7,9,10],"fit":0,"five":0,"fix":[4,9],"fixed_mtu":5,"flag":[0,2,7,9,10],"flash":10,"fleet":9,"flexibl":[2,3,5,6,11],"fli":9,"flight":7,"float":[0,7],"flood":[5,10],"flow":[0,2,5,6,9],"flow_control":5,"flush":0,"focu":10,"focus":9,"folder":0,"follow":[0,2,3,5,7,8,9,10,11],"forc":[0,10],"forcibli":[7,10],"foreground":2,"foremost":11,"forget":[6,10],"form":[2,5,6,7,9,10],"format":[0,4,10,11],"forth":0,"forward":[5,6,7,9,11],"forward_ip":5,"forward_port":5,"found":[0,2,5,7,9,10],"foundat":[6,8,9,11],"frame":[0,5],"free":[2,6,8,11],"freedom":9,"freedv":3,"freeli":9,"freq":10,"frequenc":[2,3,5,9,10],"frequent":[5,6],"friend":2,"friendli":2,"from":[0,2,3,5,6,7,8,9,10,11],"from_byt":7,"from_fil":7,"from_identity_hash":7,"fromhex":0,"front":9,"fruit":0,"ftdi_ft230x_basic_uart_43891ckm":10,"full":[0,2,5,6,7,9,10,11],"full_hash":7,"full_nam":[7,10],"fulli":[0,2,3,5,9,10,11],"funcion":7,"function":[0,2,3,4,5,6,7,8,10,11],"fundament":[3,6,9,10],"further":[2,4,5],"futur":[4,6,7,10],"fw":10,"g":[0,9,10],"ga":0,"gain":[2,3,7,9],"galact":9,"gap":2,"gatekeep":9,"gatewai":[0,2,5,6,9,10],"gbp":10,"gener":[0,2,3,5,6,7,9,10,11],"generalis":11,"genuin":10,"geograph":[2,5],"get":[0,3,4,5,6,7,10],"get_ag":7,"get_channel":[0,7],"get_config_obj":0,"get_data_s":7,"get_establishment_r":7,"get_expected_r":7,"get_external_ip":5,"get_hash":7,"get_inst":7,"get_mdu":7,"get_mod":7,"get_mtu":7,"get_packet_rssi":0,"get_packet_snr":0,"get_part":7,"get_private_kei":7,"get_progress":[0,7],"get_public_kei":7,"get_q":7,"get_random_hash":[0,7],"get_remote_ident":[0,7],"get_request_id":7,"get_respons":7,"get_response_tim":7,"get_rssi":7,"get_rtt":[0,7],"get_seg":7,"get_snr":7,"get_statu":7,"get_transfer_s":7,"geti2p":5,"ghz":9,"gi":0,"gigabit":6,"gigabyt":11,"github":[0,2],"give":[2,5,9,10],"given":[5,6,7,9,10],"global":[0,4,5,6,7,9,10,11],"glue":3,"go":[0,5,6,9],"goal":[2,4,5,6],"goe":2,"good":[2,3,6,9,10],"got":0,"got_respons":0,"govern":9,"grace":7,"gracefulli":[5,6],"grant":10,"grape":0,"graphic":2,"gratefulli":8,"great":[2,9],"greater":[7,9,10,11],"greatli":[2,5],"group":[5,7,9],"group_id":5,"groupinstal":2,"grow":2,"grown":2,"growth":2,"guarante":[6,8,9],"guess":5,"guid":[2,3,9],"guidelin":2,"gw":5,"h":10,"ha":[0,2,3,5,6,7,8,9,11],"hack":11,"had":9,"half":[9,11],"hand":0,"handheld":9,"handl":[0,2,3,5,6,7,9,10,11],"handler":[0,7,10],"happen":[0,2,7,9],"hard":[2,3],"hardcod":2,"hardlin":6,"hardwar":[0,2,4,5,7,9,10,11],"has_path":[0,7],"hasattr":0,"hash":[0,6,7,9,10],"hash1":9,"hash2":9,"hash_from_name_and_ident":7,"hashlib":9,"hashmap":0,"have":[0,2,3,5,6,7,8,9,10],"hazard":7,"hdlc":0,"head":2,"header":[0,5,7,9],"header_1":9,"header_2":9,"health":4,"hear":9,"heard":[7,9,10],"height":5,"held":[5,10],"helium":0,"hellman":[6,9],"help":[0,2,6,8,9,10],"helper":0,"here":[0,2,5,9,10],"heterogen":[4,11],"hex":[0,10],"hexadecim":[0,9,10],"hexbyt":10,"hidden":10,"hide":2,"hierarch":11,"high":[2,3,5,6,9,10,11],"higher":[5,6,11],"highest":7,"highli":[2,5,8,9],"hint":0,"hit":0,"hkdf":9,"hmac":[9,11],"hoc":11,"hold":[5,7,9],"holder":6,"home":[2,6,10],"homebrew":5,"hop":[5,6,7,9,10,11],"hopefulli":6,"hops_to":7,"host":[0,4,5,6,9,10],"hostnam":5,"hour":[0,5,10],"hous":2,"how":[0,2,3,5,6,9,10,11],"howev":[2,5,6,9],"http":[0,8],"hub":[2,5,10],"human":[0,5,6,7,8,9],"hundr":[2,6],"hungri":3,"hw_mtu":0,"hwrev":10,"hz":[5,10],"i":[0,2,3,4,5,6,7,8,9,10],"i2p":[2,4,6,11],"i2p_tunnel":5,"i2pd":[2,5],"i2pinterfac":[2,5],"ia":10,"ic":3,"ic_burst_freq":5,"ic_burst_freq_new":5,"ic_burst_hold":5,"ic_burst_penalti":5,"ic_held_release_interv":5,"ic_max_held_announc":5,"ic_new_tim":5,"id":[5,7,9,10],"id_callsign":5,"id_interv":5,"idea":[2,9,10],"ideal":11,"ident":[0,2,4,5,6,7,10,11],"identif":[4,5,11],"identifi":[0,5,6,7,9,10],"identifyexampl":0,"identity_data":10,"ie":10,"if00":10,"ifac":[0,2,5,6,9,10],"ifac_s":5,"ifconf":0,"ifconfig":10,"ignor":[5,6,7,8,9,10],"ignored_devic":5,"illustr":[0,5,9],"imagin":6,"immedi":[5,10],"impact":[5,6,7,9],"imperson":6,"implement":[0,5,6,7,8,9,11],"implic":[4,5,6],"implicit":[6,7,9],"implicitli":10,"import":[0,2,3,5,6,7,8,9,10],"importlib":0,"imposs":9,"impract":10,"improv":[2,4,5,8],"in_fram":0,"in_wait":0,"inactive_for":7,"inadvert":10,"inbound":[0,5,7],"inbox":6,"includ":[0,3,4,5,6,7,9,11],"inclus":6,"incom":[0,5,7,10],"incompat":[7,9],"incomplet":6,"increas":[5,7,10],"incur":5,"indefinit":10,"independ":[7,9],"index":[0,2,4],"indic":[0,7],"indirectli":9,"individu":[2,5,7,8,9,10,11],"inevit":[2,9],"infer":9,"influx":5,"info":[7,9,10],"inform":[0,2,4,5,6,7,8,9,10],"infrastructur":[3,4,5,6,9,10],"ingo":7,"ingress":[0,5],"ingress_control":5,"inher":6,"init":2,"initi":[0,5,6,7,9,11],"initialis":[0,7,10],"input":[0,10],"insert":9,"insid":9,"inspect":[2,5,6,9,10],"instal":[0,4,5,9,10,11],"instanc":[0,4,5,7,9,10],"instance_control_port":10,"instance_nam":10,"instanti":7,"instantli":10,"instead":[0,2,5,7,9,10],"instruct":2,"int":[0,7],"integ":[0,7],"integr":[2,9,10],"intend":[2,5,6,9,10],"intens":10,"intent":6,"intention":9,"inter":[7,9],"inter_byte_timeout":0,"interact":[0,2,6,7,9,10],"intercept":6,"interchang":5,"interconnect":[5,6,9],"interest":[2,9],"interfac":[3,4,6,7],"interface_class":0,"interface_discovery_sourc":[7,10],"interface_en":10,"interfer":[6,10],"intermedi":6,"intermediari":[5,7,9],"intermitt":[5,6],"intern":[0,5,7,9],"internal_1":5,"internet":[4,5,6,9,10,11],"interoper":[2,3,6,9,11],"interrupt":5,"interv":[5,7,10],"intervent":10,"intiat":0,"introduc":9,"introduct":4,"introductori":4,"intuit":[6,11],"invalid":[0,5,7],"invers":9,"invest":6,"invis":[2,5],"invit":5,"involv":[6,8],"io":3,"ioerror":0,"iot":3,"ip":[2,3,5,6,9,10,11],"ipv4":5,"ipv6":[2,5,10],"irrelev":8,"is_compress":7,"is_connected_to_shared_inst":0,"is_open":0,"is_path_respons":7,"is_ready_to_send":[0,7],"isdir":0,"isfil":0,"isinst":0,"ism":[3,9],"isol":[2,5,10],"isp":[5,6],"issu":[4,5,6],"its":[3,5,6,7,9,10],"itself":[2,4,6,9,10],"iv":[9,11],"j":10,"jail":10,"job":0,"join":[0,2,6,9],"journei":6,"json":10,"just":[0,2,3,5,6,9,11],"k":[0,10],"kb":10,"kbp":10,"keep":[0,2,6,7,9,10,11],"keepal":[7,9],"keepalive_timeout_factor":7,"kei":[0,4,5,6,7,10,11],"kept":[5,6,7,9],"kernel":[5,10,11],"keyboardinterrupt":0,"keyerror":7,"keypair":[6,9],"keyset":[9,10,11],"keysiz":7,"keystor":6,"khz":5,"ki":0,"kill":[7,9],"kind":[3,5,6,9],"kiss":[3,4,10,11],"kiss_fram":5,"kissinterfac":[5,10],"know":[0,2,3,5,6,7,9],"knowledg":[6,9],"known":[0,5,7,9,10],"ko":8,"krypton":0,"l":[5,10],"lack":9,"laid":9,"lan":5,"laptop":6,"larg":[0,3,5,6,7,9,10,11],"larger":[6,9,10],"laser":5,"last":[0,5,7,10],"last_read_m":0,"last_unit":0,"latenc":[2,6,9,11],"later":[0,2,5,10],"latest":[0,2,5,7,10],"latest_buff":0,"latest_client_link":0,"latitud":5,"laucnh":2,"launch":[2,10],"layer":[3,5,6,7,9,10,11],"lead":[2,9],"leak":2,"learn":[0,2,6,8,9],"least":[2,3,5,6,9,10,11],"leav":[2,6,9],"ledger":9,"left":[5,7,9,10],"legaci":6,"legal":5,"legisl":5,"legitim":[2,6,10],"len":0,"length":[0,5,7,9],"less":[0,2,3,5,7,9,11],"let":[0,2,5,6,9,10],"level":[3,5,6,9,10],"liber":3,"liberapai":8,"libffi":2,"librari":2,"licens":9,"lift":10,"light":10,"lightweight":11,"like":[0,2,3,5,6,7,9,10,11],"limit":[0,2,3,4,6,9],"line":[0,2,4,5,9,10,11],"linger":10,"link":[2,3,4,5,6,7,10,11],"link_clos":0,"link_establish":0,"link_id":[0,7],"link_mtu_discoveri":7,"linkexampl":0,"linux":[2,3,5,9],"list":[0,2,3,4,5,7,9,11],"list_deliv":0,"list_fil":0,"list_filt":10,"list_packet":0,"list_receipt":0,"list_timeout":0,"listdir":0,"listen":[0,2,4,9,10],"listen_ip":5,"listen_on":[2,5],"listen_port":5,"littl":[3,9],"live":[2,7],"lki":9,"lkr":9,"ll":[0,11],"ln":10,"load":[0,2,3,5,7,10,11],"load_private_kei":7,"load_public_kei":7,"local":[0,2,4,5,6,7,9,11],"locat":[2,5,6,9,10],"log":[0,2,5,10],"log_crit":0,"log_error":0,"log_info":0,"log_verbos":0,"logdest":7,"logic":9,"loginctl":10,"loglevel":[0,7,10],"long":[0,2,3,5,6,7,9,10],"longer":[0,2,9,10],"longest":5,"longitud":5,"look":[0,2,5,6,9,10],"loop":0,"lora":[2,3,4,6,9,11],"lorawan":[3,9],"loss":[5,6,9],"lot":[6,9],"low":[2,3,5,6,9,11],"lower":[0,2,5,10],"ltu":3,"lunar":4,"lxmf":[2,5,6,7,10],"m":[0,2,9,10],"mac":[5,9],"machin":[2,9,10],"maco":4,"made":[2,5,7,9],"mai":[2,5,6,7,9,10],"main":0,"maintain":[2,6,9,10],"mainten":[6,9],"make":[0,2,3,5,6,8,9,10,11],"malici":[2,6,9,10],"malinform":8,"manag":[2,4,6,7,9,11],"mani":[0,2,3,5,6,7,9,10,11],"manipul":[9,11],"manjaro":2,"manner":6,"manual":[0,2,5,6,7,9,10],"manufactur":[3,5],"map":[5,9,10],"mark":[2,7,9],"markqvist":[0,8],"master":[0,7],"match":[0,5,9,10],"matter":[2,5,6],"matur":10,"max":10,"maximum":[0,5,7,9,10],"mbp":10,"mdu":[0,7],"me":5,"mean":[2,3,5,6,7,9,10],"meaning":2,"meantim":7,"measur":[6,9],"mechan":[2,4,5,6,10,11],"medium":[0,3,5,6,7,9,11],"member":[2,9],"memori":[2,6,9],"mention":[5,9],"menu":0,"menu_mod":0,"merg":10,"mesh":[2,5,6,9,10,11],"meshchat":4,"messag":[0,2,6,7,9,10],"message_class":7,"messagebas":[0,4,7],"messagecallbacktyp":7,"messeng":[6,9],"met":2,"metadata":[2,5,9,10],"metavar":0,"meter":5,"meth":0,"method":[0,2,5,7,9],"methodologi":[9,10],"mevpekyafshak5wr":5,"mhz":[5,9],"mi":0,"microcontrol":9,"microwav":6,"might":[2,5,6,9,10],"mikrotik":3,"millimet":3,"millisecond":[0,6,10],"mind":[6,11],"minim":[3,4,5,9],"minimalsampl":0,"minimum":[0,5,7,9,10],"minimum_bitr":7,"minut":[0,2,5,9],"mirror":[6,10],"misconfigur":2,"mislead":2,"miss":[0,2],"mistak":2,"misunderstand":8,"mitig":6,"mix":[4,5,6,10],"mixtur":11,"mobil":[5,6,9],"mode":[0,2,3,4,6,7,9,10,11],"model":[6,10],"modem":[4,5,6,7,9,11],"moder":5,"modern":[2,3],"modifi":[5,6,9,10],"modul":[0,2,3,5,6,9,10,11],"moment":9,"momentarili":5,"monero":8,"monitor":[2,5,9,10],"moon":0,"more":[0,2,3,5,6,7,8,9,10,11],"most":[2,3,5,6,7,9,10],"mostli":[5,6,9],"motiv":4,"move":[5,6,9,10],"msgtype":[0,7],"mtu":[0,5,7,9,11],"much":[2,5,6,9,10,11],"multi":[4,6,9,10,11],"multicast":5,"multicast_address_typ":5,"multilater":9,"multipl":[0,5,6,9,10],"multiplex":0,"multipoint":9,"multitud":2,"must":[0,2,5,6,7,9,10],"mw":5,"my":[5,9],"my_fil":10,"my_ident":10,"my_network":[9,10],"my_network_ident":5,"mycal":5,"myriad":9,"n":[0,9,10],"name":[0,2,4,5,6,7],"namespac":0,"narg":0,"nat":[2,5],"nativ":[0,6],"natur":5,"nearbi":[5,6],"nearest":5,"nears":9,"neat":6,"neccessari":5,"necesarri":5,"necessari":[3,5,6,7,9],"necessarili":9,"need":[0,2,3,4,5,6,7,8,9,10,11],"neg":2,"neglig":9,"neither":[7,9],"neon":0,"neopixel":10,"net":5,"netcat":5,"network":[0,3,5,7,10,11],"network_ident":[5,9,10],"network_nam":[2,5],"neutral":6,"never":[5,6,7,9],"new":[0,2,4,6,7,9,10],"new_id":10,"new_ident":10,"newer":[7,9],"newest":9,"newli":[5,7,9],"newlin":5,"next":[2,5,7,9],"next_hop":7,"next_hop_interfac":7,"nicknam":9,"no1cll":5,"no_data_for":7,"no_inbound_for":7,"no_outbound_for":7,"noauth":10,"nobl":0,"noble_ga":0,"noble_gas":0,"nocheck":10,"node":[2,4,5,10,11],"noid":10,"nois":[7,8],"nomad":4,"nomadnet":2,"non":[2,5,7,9],"none":[0,2,5,7,9,10],"nor":2,"normal":[0,2,5,7,9,10],"notat":[9,10],"note":[0,3,4,5,7,9,10],"noth":[3,6,11],"notic":[5,9,10],"notif":[0,7],"now":[0,2,9,10],"np":10,"nrf52":3,"nt":0,"num":0,"number":[0,2,5,6,7,9,10],"o":[0,2,5,9,10,11],"object":[0,7],"obscur":2,"observ":6,"obtain":[2,3,7,9],"obvious":9,"occur":[0,5,10,11],"ocur":7,"odd":0,"off":[2,5,6,9,10,11],"offer":[2,4,5,6,7,9,10],"offic":6,"offlin":[0,2,6],"often":[2,5,6,9,10],"oganesson":0,"old":[0,2,3,8,9],"older":10,"omit":7,"on_interfac":7,"onc":[0,2,3,5,7,9,10,11],"one":[0,2,3,5,6,7,9,10,11],"ones":[2,5,6,10],"oneself":9,"onli":[0,2,3,5,6,7,9,10,11],"onlin":[0,10],"onto":[2,9],"opaqu":6,"open":[0,2,3,5,6,7,8,9,10,11],"open_port":0,"openmodem":[5,11],"openssl":[2,9],"openwrt":4,"oper":[2,3,5,6,7,9,10,11],"opinion":8,"opkg":2,"opportunist":6,"opposit":[0,5],"opt":9,"optic":[3,11],"optim":[2,6],"option":[0,2,3,4,6,7,9,10],"ord":0,"order":[0,7,10],"organ":[2,6,9,10],"organis":[5,8],"orient":9,"origin":[0,6,9],"os":2,"other":[0,2,3,5,6,7,9,10],"otherwis":[0,7],"our":[0,5,9],"ourselv":6,"out":[0,2,3,5,7,9,10],"outbound":[7,9],"outgo":[0,5,7,9,10],"outlin":[2,3,9],"output":[5,10],"outsid":[7,11],"over":[0,3,4,5,6,7,8,9,10,11],"overal":[9,10],"overcom":9,"overhead":[2,3,5,9],"overlai":2,"overli":8,"overrid":0,"oversight":9,"overview":[4,5],"overwhelm":[5,6,7],"overwrit":10,"own":[0,2,6,7,9,10,11],"owner":0,"p":[0,10],"pack":[0,7],"packag":[0,2,5,9],"packb":0,"packed_s":0,"packet":[0,2,4,5,6,7,10,11],"packet_callback":0,"packet_deliv":0,"packet_hash":0,"packet_receipt":[0,7],"packet_timed_out":0,"packetreceipt":[0,4,7],"pad":[9,11],"page":[2,4,9,10],"pair":[5,7,9,10],"pamac":2,"panic":[0,10],"panic_on_interface_error":[0,10],"paper":2,"par":[0,2],"parallel":2,"param":0,"paramet":[0,3,4,7,9,10],"pariti":[0,5,10],"parity_even":0,"parity_non":0,"parity_odd":0,"pars":0,"parse_arg":0,"parser":0,"part":[0,2,5,6,7,9,10],"particip":[2,4,5,6,9,10],"particular":[0,3,5,9,10],"particularli":[5,10],"pass":[0,3,5,6,7,9,10],"passphras":[2,5,6,9],"passport":9,"past":10,"path":[0,2,3,5,6,7,9,10],"path_respons":7,"pathfinder_m":7,"pattern":[3,6,9],"payload":[0,5,7,9,10],"pdf":4,"peach":0,"peer":[0,2,5,7,9,10],"penalti":5,"pend":[0,9],"peopl":[2,9],"per":[5,6,7,9,10,11],"percent":[0,5],"percentag":7,"perfectli":2,"perform":[0,2,5,6,7,9,10],"perhap":2,"period":[0,5,7,9,10],"perman":[2,5,10],"permiss":5,"permissionless":[9,10],"persecut":9,"persist":[5,10],"person":[4,5,6,8,9],"perspect":[5,6,7,9,11],"pet":0,"philosophi":[8,9],"phone":[2,6],"phy":10,"physic":[0,2,3,5,6,7,9,10,11],"pi":[0,4,6,9,10,11],"pick":9,"piec":9,"ping":10,"pip":[0,2,3,5,10],"pip3":2,"pipe":[2,4,11],"pipeinterfac":[3,5],"pipx":2,"pitfal":9,"pkcs7":[9,11],"pkg":2,"place":[0,2,5,6,9,10],"plaform":3,"plain":[0,3,5,7,9],"plain_mdu":7,"plaintext":[0,7],"plan":[6,9],"planetari":11,"platform":[0,3,4,9,10],"pleas":[0,2,5,7,10],"plenti":[6,9],"plug":10,"pmr":9,"point":[2,3,5,6,8,9,10],"pointer":2,"polici":10,"pomelo":0,"popul":7,"popular":11,"port":[0,2,3,4,5,6,9,11],"port0":10,"portabl":[5,6,9],"pose":[2,9],"posit":[0,10],"posix":2,"possess":[5,9],"possibl":[2,3,5,6,7,9,10,11],"possibli":[2,9],"post":0,"postfix":10,"potenti":[0,2,5,8,9,10,11],"power":[2,3,5,6,9,10,11],"powershel":2,"ppp":0,"practic":[2,6,9,11],"pre":[2,6,7,9],"preambl":[5,10],"preced":0,"preciou":6,"precompil":2,"predict":9,"prefer":[2,8,9],"prefer_ipv6":5,"premis":6,"prepar":[0,9],"prerequisit":7,"presenc":[5,7],"present":[5,6,9,10],"preserv":[2,7],"preshar":9,"press":0,"pretend":9,"prettyhexrep":0,"prevent":[5,6,10],"previou":0,"previous":[5,7,9],"primari":9,"primarili":[5,6],"primarlii":2,"primit":[2,4],"principl":[6,9,11],"print":[0,5,10],"print_filelist":0,"print_help":0,"print_menu":0,"priorit":[6,9],"prioriti":9,"prioritis":[4,5,6,7],"privaci":[2,5,11],"privat":[2,5,6,7,8,9,10,11],"private_ret":2,"privileg":10,"probabl":[0,2,6,9,10,11],"probe":10,"problem":[2,9,10],"proc":10,"procedur":[2,7,9],"process":[0,2,3,5,6,7,9,10],"process_incom":0,"process_outgo":0,"product":10,"profound":6,"program":[0,3,4,5,7,9,11],"program_setup":0,"programm":9,"programmat":9,"progress":[0,7,10,11],"progress_callback":7,"project":[2,8],"promis":2,"prompt":[0,2],"proof":[0,5,6,7,9,10],"proof_packet":0,"proof_requested_callback":7,"proof_strategi":7,"propag":[4,5,6,7,10],"proper":2,"properli":2,"properti":[0,6,7],"proport":9,"propos":2,"protect":[2,10],"protocol":[2,3,4,5,6,11],"prove":[0,6,9],"prove_al":[0,7],"prove_app":7,"prove_non":7,"proven":[7,9],"provid":[0,2,3,4,5,6,7,9,10,11],"provis":[3,10],"prv_byte":7,"pseudo":10,"pub_byt":7,"public":[0,4,5,6,7,8,10],"public_inform":0,"publicli":[2,5,9,10],"publish":[2,4,5,7,9],"publish_blackhol":10,"publish_blackhole_en":7,"publish_ifac":5,"purchas":[2,9,11],"pure":[4,9],"purg":7,"purpos":[2,3,5,6,7,9,10],"put":[0,3,5,10],"py":[0,9,10],"py3":2,"pyca":[2,9],"pyseri":[0,2],"python":[0,4,5,7,9,10,11],"python3":[0,2,3],"q":[0,10],"qr":[2,6],"qualiti":[7,10],"quantiti":2,"quarter":2,"queri":[0,2,7,10],"question":[2,3,5],"queu":[7,10],"queue":[5,9],"quickli":[8,9,11],"quiet":[5,10],"quinc":0,"quirk":2,"quit":[0,2],"r":[0,5,9,10],"radio":[4,5,6,7,9,10,11],"radon":0,"rais":[0,7],"rak":3,"ram":[2,5],"randint":0,"random":[0,7,8,9],"random_text_gener":0,"randomis":9,"randomli":[0,9],"rang":[0,2,3,5,6,9,10,11],"rapidli":5,"rare":[2,5],"raspberri":[4,6,9,10,11],"rasperri":2,"ratchet":[7,9],"ratchet_count":7,"ratchet_expiri":7,"ratchet_id_receiv":7,"ratchet_interv":7,"ratchets":7,"ratchets_path":7,"rate":[0,4,7,10],"rather":[2,7],"ratio":7,"raw":[0,3,7],"rawchannelread":[4,7],"rawchannelwrit":[4,7],"rawiobas":7,"rb":0,"re":[0,5,6,7,9],"reach":[2,4,5,6,7,10],"reachabl":[0,2,5,6,7,9,10],"reachable_on":5,"read":[0,2,5,6,7,9,10],"read_loop":0,"readabl":[0,5,7,9,10],"reader":[0,7],"readi":[0,2,3,5,7,11],"readili":11,"ready_byt":[0,7],"ready_callback":7,"real":[2,3,5,6,11],"realiti":[2,8],"realli":[5,7],"reappear":5,"reason":[2,5,9,10],"reassembl":9,"reboot":2,"rebroadcast":6,"recal":[0,7,10],"recall_app_data":7,"recap":9,"receipt":[0,6,7,9],"receiv":[0,2,5,6,7,8,9,10],"receive_path_respons":7,"receive_stream_id":7,"received_announc":[0,7],"recent":[7,9],"recept":7,"reception_rssi":0,"reception_snr":0,"reception_stat":0,"recipi":9,"recogn":9,"recommend":[0,2,5,9],"recondit":10,"reconnect":[0,6],"reconnect_port":0,"reconstruct":9,"record":[2,9],"recoveri":5,"recreat":9,"recurs":[7,9],"reduc":[5,10],"redund":6,"refer":[0,2,4,5,10],"refin":8,"refresh":10,"refus":6,"regain":2,"regard":9,"region":5,"regist":[0,7,10],"register_announce_handl":[0,7],"register_message_typ":[0,7],"register_request_handl":[0,7],"regul":5,"regular":10,"rel":[3,5,6,9],"relai":2,"relat":2,"relationship":[6,9,10],"releas":[2,5,7,9],"relev":[0,2,3,5,7,9,10],"reli":[2,5,6,8,9,10],"reliabl":[2,3,5,6,7,9,11],"relianc":2,"relief":6,"reload":10,"rem":0,"remain":[5,6,7,9],"rememb":[6,7,9],"remot":[0,4,7,9],"remote_ident":[0,7],"remote_identifi":0,"remote_management_allow":10,"remote_management_en":7,"remote_p":0,"remotesensor":9,"remov":[7,10],"remove_message_handl":7,"remove_ready_callback":7,"render":2,"replac":[0,2,6,7,9,10],"repli":[0,10],"replic":[3,9],"reply_data":0,"reply_messag":0,"reply_text":0,"report":[5,7,8,10],"repositori":[2,9],"repres":[6,9],"represent":[0,7],"repurpos":2,"reput":[9,10],"request":[4,5,6,7,9,10,11],"request_destin":0,"request_fail":0,"request_id":[0,7],"request_packet":0,"request_path":[0,7],"request_receipt":[0,7],"request_receiv":0,"requested_at":[0,7],"requestexampl":0,"requestor":5,"requestreceipt":[4,7],"requir":[0,2,5,6,7,9,10,11],"require_shared_inst":7,"required_discovery_valu":[7,10],"resend":7,"reserv":[0,6,7],"resid":5,"resili":[2,6,10,11],"resist":6,"resolut":[2,5,9],"resolv":[4,5,6,9,10],"resourc":[0,2,4,5,6,7,8,10],"resource_callback":7,"resource_sending_conclud":0,"resource_strategi":7,"respawn":5,"respawn_delai":5,"respawn_interv":5,"respect":[5,6,11],"respond":[0,6,7,10],"respond_to_prob":10,"respons":[4,5,7,9,11],"response_callback":[0,7],"response_gener":[0,7],"rest":[6,11],"restart":[5,10],"restartsec":10,"restor":[2,5],"restrict":[5,6,10],"result":[0,2,5,9,10],"ret":[4,9],"retain":[5,7],"retained_ratchet":7,"reticulum":[0,5,6,7],"retransmiss":[6,9],"retransmit":[5,9],"retri":[0,7,9],"retriev":[7,10],"return":[0,5,7,10],"reveal":[2,7,9,11],"revers":10,"review":9,"revis":10,"rfe":10,"ridicul":9,"right":[2,5],"risc":4,"risk":9,"rmap":2,"rn":[0,2,3,7,9,10],"rncp":4,"rnid":[4,9],"rnode":[2,4,9,10,11],"rnodeconf":[3,4],"rnodef3b9":5,"rnodeinterfac":[2,3,5,10],"rnodemultiinterfac":5,"rnpath":[2,4,5],"rnprobe":[2,4],"rns_bin_dir":10,"rnsd":[2,4],"rnsh":[2,10],"rnspure":[2,9],"rnstatu":[2,4,5,9],"rnstransport":[5,10],"rnx":4,"roadmap":8,"roam":[5,6],"robot":9,"robust":[2,5],"role":6,"roll":5,"rom":10,"root":9,"rotat":[7,9,10],"round":[0,7,10],"rout":[2,3,5,6,7,9,10,11],"router":[2,5,6,10],"rpc":10,"rpc_kei":10,"rprogress":0,"rssi":[0,7,10],"rtsct":0,"rtt":[0,7,9],"rttstring":0,"rule":[2,4,5,6,10],"run":[0,2,3,5,6,7,9,10,11],"runtim":[0,9],"rust":2,"rx":[5,10],"rxb":0,"safe":9,"sai":2,"said":9,"same":[0,2,3,5,6,7,9,10],"satellit":6,"satisfi":9,"save":[7,9,10],"save_error":0,"saved_filenam":0,"scalabl":[10,11],"scale":[9,11],"scan":[2,5],"scenario":[2,5,9],"schedul":7,"scheme":[3,5],"scope":5,"scratch":3,"screen":0,"script":[2,3,5],"scrutini":9,"seamless":[5,9],"seamlessli":[5,6],"search":[4,7],"second":[0,5,6,7,9,10,11],"secreci":[5,7,9,11],"secret":[6,9],"section":[2,3,5,6,9,10],"secur":[2,4,6,9,10,11],"see":[0,2,5,6,7,9,10,11],"seek":9,"seen":[5,9],"segment":[0,2,5,6,7,9,10,11],"select":[0,2,5],"self":[0,2,9,11],"semtech":3,"send":[0,5,6,7,9,10],"send_stream_id":7,"sender":[0,2,6,9,10],"sens":6,"sensibl":[2,3,5],"sensor":[6,9],"sent":[0,2,6,7,9,10],"sentiment":9,"separ":[0,2,5,6,9,10],"sequenc":[0,7,9,11],"sequenti":11,"seri":3,"serial":[0,2,4,6,9,11],"serialinterfac":[3,5],"serv":[0,3,5,6,8,9,10],"serve_path":0,"server":[0,2,3,4,6,7,9,10],"server_buffer_readi":0,"server_callback":0,"server_client_connect":0,"server_destin":0,"server_fil":0,"server_ident":0,"server_link":0,"server_loop":0,"server_message_receiv":0,"server_packet_receiv":0,"servic":[2,4,5,6,9],"session":[2,9],"set":[0,2,3,5,6,7,9,10,11],"set_default_app_data":7,"set_delivery_callback":[0,7],"set_link_closed_callback":[0,7],"set_link_established_callback":[0,7],"set_packet_callback":[0,7],"set_proof_requested_callback":7,"set_proof_strategi":[0,7],"set_ratchet_interv":7,"set_remote_identified_callback":[0,7],"set_resource_callback":7,"set_resource_concluded_callback":[0,7],"set_resource_started_callback":[0,7],"set_resource_strategi":[0,7],"set_retained_ratchet":7,"set_timeout":[0,7],"set_timeout_callback":[0,7],"setup":[0,2,4,5,10],"sever":[2,6,7,10],"sf":10,"sh":5,"sha":[6,7,9],"sha256":[9,11],"shall":9,"shape":6,"share":[0,2,6,7,9,10],"share_inst":10,"shared_instance_port":10,"shared_instance_typ":[7,10],"shelf":[9,11],"shell":[4,10],"ship":[2,9],"shop":0,"short":[3,5,9,10],"shorter":5,"shorthand":[5,10],"shot":2,"should":[0,2,5,6,7,9,10,11],"should_ingress_limit":0,"should_quit":0,"should_use_implicit_proof":7,"show":[2,10],"shown":[0,8],"side":[5,11],"sideband":[4,10],"sign":[5,6,7,9,10],"signal":[0,5,7,9],"signatur":[6,7,9,10,11],"signifi":9,"signific":6,"significantli":[5,7],"silent":10,"similar":[0,2,3,5,7,10,11],"simpl":[0,2,3,7,9,10,11],"simpler":[5,6,11],"simplest":[5,9],"simpli":[0,2,3,5,6,8,9,10],"simplic":9,"simplifi":0,"simplyequip":3,"simultan":[2,9],"sinc":[0,2,5,6,7,9],"singl":[0,2,5,6,7,9,10,11],"singular":9,"sit":2,"site":[5,6],"situat":[2,3,5,6,9,10],"size":[0,2,5,7,9,10],"size_str":0,"skip":0,"slate":2,"sleep":[0,2,10],"slice":0,"slightli":[0,2],"slottim":[5,10],"slow":[0,5,6,9],"slower":[5,7,9],"small":[0,2,5,6,7,9,11],"smaller":7,"smallest":2,"snippet":[2,10],"snr":[0,7,10],"so":[0,2,3,5,6,7,8,9,10,11],"social":2,"socket":[5,10,11],"softwar":[2,3,5,9],"sole":5,"solid":8,"solut":[2,9,10],"solv":9,"some":[0,2,3,5,6,7,9,10],"someon":[2,5,10],"someth":[6,9],"somethign":0,"sometim":[3,5],"somewhat":2,"soon":7,"sort":[5,9,10],"soundmodem":5,"sourc":[0,2,3,4,6,7,9,11],"sovereign":[2,9],"sovereignti":11,"space":[0,2,3,6,9,11],"spam":[2,5,9,10],"spammi":10,"span":[5,6,9],"spawn":5,"spe":5,"speak":8,"spec":9,"special":[9,10],"specif":[0,3,4,5,6,7,10],"specifi":[0,2,3,5,6,7,9,10],"spectrum":[5,9],"speed":[0,5,7,9,10],"split":0,"sponsor":8,"spread":[5,10],"spreadingfactor":5,"squelch":5,"ssh":2,"ssid":5,"stabil":6,"stabl":[2,5,6,9,11],"stack":[0,2,6,7,9,10,11],"stage":9,"stai":[0,9,10],"stale":[6,7],"stale_grac":7,"stale_tim":7,"stamp":[5,7,10],"standalon":4,"standard":[3,5,9,10],"start":[0,3,4,5,6,7,9,10],"startup":[0,2,10],"stat":[7,10],"state":[0,6],"static":[2,5,7],"staticmethod":0,"station":5,"stationari":[6,10],"statist":[0,5,7,8],"statu":[0,2,4,5,7,9,10],"stderr":10,"stdin":[5,10],"stdio":11,"stdout":[0,5,10],"stem":8,"step":[0,2,3],"still":[0,2,5,6,9,10],"stock":0,"stop":[7,11],"stopbit":[0,5,10],"storag":[2,5,9,10],"store":[0,7,9,10],"store_tru":0,"str":0,"straightforward":5,"strateg":6,"strategi":[4,5,7],"stream":[0,7,9],"stream_id":[0,7],"strength":[7,11],"strictli":[5,9],"string":[0,7],"stringmessag":0,"strong":9,"stronger":2,"strongli":2,"struct":0,"structur":[0,6,7,9,11],"style":5,"sub":[0,5],"subclass":[0,7],"subinterfac":5,"subject":[2,10,11],"subnet":[2,6],"subscrib":[2,10],"subsequ":[0,9],"subset":5,"subsid":5,"substanti":2,"succe":2,"succeed":[0,7],"succesfulli":6,"success":[2,5],"successful":7,"successfulli":[0,7,9],"sudo":[2,10],"suffer":6,"suffic":9,"suffici":[2,5,9,10],"suffix":0,"suit":[2,3,9,10],"suitabl":[0,2,5,6,9,10,11],"super":0,"supersed":5,"suppli":[0,5,7,9,11],"supplier":2,"support":[0,2,4,5,6,7,9,10,11],"sure":[0,2,3,10],"surveil":9,"surviv":[2,9,10],"switch":[3,5,6,9,10],"sx1262":3,"sx1268":3,"sx1276":3,"sx1278":3,"sx1280":3,"sy":0,"symlink":10,"symmetr":[7,9],"system":[0,2,3,4,5,6,7,8,9,11],"systemctl":10,"systemd":10,"t":[0,2,5,6,7,9,10],"tabl":[2,5,6,9,10],"tablet":2,"tag":7,"tail":5,"tailor":9,"take":[0,2,5,9,10,11],"taken":[0,9],"tangerin":0,"tap":3,"target":[0,5,10],"target_hash":7,"target_host":[2,5],"target_port":[2,5,10],"task":10,"tcp":[2,3,4,6,9,10,11],"tcpclientinterfac":[2,3,5],"tcpinterfac":10,"tcpserverinterfac":[2,5],"tdata":0,"teach":10,"teahous":8,"teardown":[0,7],"teardown_reason":0,"technologi":[2,6],"teffect":0,"telemetri":8,"tell":[0,2,5,6],"temperatur":9,"temporari":[2,5,10],"temporarili":[5,6],"ten":9,"tend":5,"term":[2,5,6,9],"termin":[0,2,7],"terminologi":[6,9],"termux":2,"test":[2,9,10],"testnet":[4,10],"text":[0,2,9],"tfile":0,"tgz":10,"than":[0,2,5,6,7,8,9,10,11],"thei":[0,2,5,6,7,9,10],"them":[0,2,3,5,6,8,9,10,11],"themselv":[5,6],"thereaft":9,"therefor":[2,9,11],"thi":[0,2,3,4,5,6,7,8,9,10,11],"thing":[0,2,6],"think":[2,3,6,8,9],"those":[2,6,9,10],"though":[2,5,6,9],"thousand":[2,5,9,10],"thread":0,"threat":10,"three":[2,9],"threshold":5,"throough":5,"throttl":[5,6],"through":[0,2,3,5,6,7,9,10,11],"throughout":[6,9],"throughput":[7,9,11],"thrown":7,"thu":[6,7,9],"ti":[0,6,9],"time":[0,2,3,5,6,7,8,9,10],"time_since_last":0,"timeout":[0,7,10],"timeoutarg":0,"timestamp":[0,9],"timestr":0,"tion":5,"tnc":[3,5,7,10,11],"to_fil":7,"todai":9,"togeth":[3,6,9,10],"token":[7,9,11],"toler":5,"too":[0,6],"tool":[2,3,6,9,10,11],"toolkit":[2,6],"top":9,"topic":9,"topographi":[2,6,9],"topologi":[2,5,6,9,11],"torn":[7,10],"total":[7,9,10,11],"total_s":0,"toward":[0,5,9],"track":7,"track_phy_stat":7,"trade":[6,9],"tradit":[6,9],"traffic":[0,2,5,6,7,9,10],"transceiv":[2,3,5,9,11],"transfer":[0,7,9,10,11],"transfer_s":0,"transform":11,"transit":2,"translat":6,"transmiss":[2,5,7,9],"transmit":[0,5,9],"transpar":[3,5,6,9,10],"transport":[0,2,4,5,7,10,11],"transport_en":7,"transport_ident":10,"travers":[2,7,9],"treat":[6,9],"tremend":6,"tri":0,"trip":[0,7,10],"trivial":[9,11],"true":[0,2,5,7,10],"truli":[3,9],"truncat":[7,9,10],"truncated_hash":7,"truncated_hashlength":[0,7],"trust":[2,5,6,9,10],"trustless":[4,9,11],"trustworthi":[6,10],"try":[0,4,5,6,7],"ttime":0,"ttransfer":0,"ttyacm0":5,"ttyusb0":[0,5,10],"ttyusb1":5,"ttyusb2":5,"tun":[3,5],"tun0":5,"tune":5,"tunnel":[2,5,6,9,11],"tupl":7,"turn":[0,5,10],"turnaround":5,"tutori":2,"two":[0,3,5,6,7,9],"tx":[5,10],"txb":0,"txp":10,"txpower":5,"txt":10,"txtail":[5,10],"type":[0,2,4,5,6,7,10],"typeerror":7,"typic":[5,6,9],"u":[9,10],"ubiqu":3,"ubuntu":[4,10],"uci":2,"udp":[4,6,9,10,11],"udpinterfac":5,"uhf":[10,11],"ultim":[2,9],"umsgpack":0,"unblackhol":10,"unblock":10,"uncencrypt":0,"uncensor":2,"unchang":6,"under":[7,8,9,10,11],"underli":[0,5,6,7,9,11],"understand":[2,4,5,6,7,10],"underwai":2,"unencrypt":[0,7,9],"unequivoc":9,"unexplor":6,"unforg":[6,11],"unfortun":2,"unidentifi":0,"unidirect":0,"unifi":[6,9],"uninterest":0,"uniqu":[0,5,6,7,9,10,11],"unit":[0,2,7,10],"unknown":[0,5,6,7,9,10],"unless":[0,2,5,6,7,9],"unlicens":9,"unlik":9,"unlock":10,"unorganis":6,"unpack":[0,7],"unpackb":0,"unplug":10,"unrecover":[0,10],"unreli":5,"unset":9,"unsupport":7,"until":[0,2,5,7],"untrust":10,"unus":10,"unwant":[9,10],"up":[0,2,3,5,6,7,9,10,11],"updat":[0,2,7,9,10],"upgrad":[2,7,9],"upkeep":5,"upon":[0,5,9],"upset":0,"urandom":[9,11],"url":10,"us":[0,3,4,5,6,7],"usabl":[2,5,9],"usag":[4,5,7,8,10],"usb":[3,9,10],"useabl":9,"user":[0,2,5,6,9,10,11],"user_input":0,"userland":11,"usernameher":10,"usr":[5,10],"usual":[2,5,6],"utf":0,"util":[0,3,4,5,9],"utilis":[0,2,5,7,9,10,11],"v":[4,10],"valid":[0,2,5,6,7,9,10],"valu":[0,2,5,7,9,10],"valuabl":[3,8],"valueerror":[0,7],"vari":[2,5,9,10],"variabl":[0,2,7],"varieti":[5,9,10,11],"variou":[0,2,5,6,9,10,11],"vast":[2,9],"vastli":6,"ve":6,"vehicl":5,"vendor":[0,3,11],"verbos":[7,10],"veri":[2,3,5,6,7,8,9,10,11],"verif":[6,7,9,10],"verifi":[0,2,5,6,7,9,10,11],"versa":11,"version":[0,2,7,9,10],"vhf":[9,11],"via":[2,3,5,6,8,9,10,11],"viabl":6,"vice":11,"view":[2,5,8,9,10],"violat":5,"virtual":[2,3,5,6,9,10,11],"visibl":[0,5],"voic":8,"volunt":2,"vpn":6,"vport":5,"vulner":6,"vvv":2,"w":10,"wa":[0,3,5,6,7,9,10,11],"wai":[0,4,5,6,7,9,10],"wait":[0,2,5,9,10],"want":[0,2,5,6,8,9,10],"wantedbi":10,"warn":10,"warrant":11,"wast":[5,6,8],"wave":3,"wb":0,"we":[0,2,3,5,6,8,9],"weaken":9,"web":2,"websit":[2,5],"weight":10,"welcom":2,"well":[2,3,5,6,7,8,9,10,11],"went":0,"were":0,"what":[0,2,4,5,6,7,9,10],"whatev":[6,7,9],"wheel":2,"when":[0,2,3,5,6,7,9,10],"whenev":[0,7,9],"where":[2,3,4,5,6,7,9,10],"whereupon":9,"whether":[0,2,5,6,7,9],"which":[0,2,5,6,7,9,10],"while":[0,2,3,5,6,7,9,10,11],"whitelist":9,"whl":2,"who":[2,5,6,9,10],"whole":10,"wide":[2,3,5,6,9,10,11],"wider":[2,5,6,9,10],"wifi":[2,4,5,6,9,10,11],"wiki":2,"wildcard":0,"willing":10,"window":[4,5],"wipe":10,"wire":[2,3,4,5,11],"wireless":[3,6],"wirelessli":5,"wish":[0,5,9,10],"within":[0,2,5,6,7,9],"without":[0,2,3,5,6,9,10,11],"wlan0":5,"wolf":3,"won":0,"word":2,"work":[2,3,5,6,9,10,11],"workabl":6,"world":[2,3,5,6,10,11],"worri":6,"worth":2,"would":[2,5,7,9],"write":[0,2,3,5,7,9,10],"write_timeout":0,"writer":[0,7],"written":[0,9,11],"wrong":[0,2,5],"wrote":[0,5],"x":[7,9,10],"x25519":[9,11],"xenon":0,"xonxoff":0,"y":0,"ye":[2,5,9,10],"year":9,"yet":[0,5,9,11],"yggdrasil":5,"yi":0,"you":[0,2,3,4,5,6,7,8,9,10,11],"your":[0,3,4,5,6,7,8,9,11],"yourself":[2,9,10,11],"z":0,"zero":[5,7,11],"zi":0,"zone":9,"zshrc":2},"titles":["Code Examples","An Explanation of Reticulum for Human Beings","Getting Started Fast","Communications Hardware","Reticulum Network Stack Manual","Configuring Interfaces","Building Networks","API Reference","Support Reticulum","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],"titleterms":{"0":3,"1":3,"25":5,"Beings":1,"Not":6,"Of":4,"The":[9,10],"With":2,"access":9,"ad":2,"address":6,"an":1,"android":2,"announc":[0,5,9],"api":7,"arm64":2,"auto":5,"autom":10,"ax":5,"backbon":5,"base":[2,3],"basic":9,"beam":3,"blackhol":10,"board":3,"bookworm":2,"bootstrap":2,"broadcast":0,"buffer":0,"build":[2,6],"can":11,"caveat":11,"channel":0,"client":5,"code":[0,9],"combin":3,"common":5,"commun":3,"concept":6,"conceptu":9,"configur":[5,10],"connect":[2,5,6],"consider":[5,6],"content":4,"contribut":2,"control":5,"creat":[2,3,9],"cryptograph":9,"current":[9,11],"custom":[0,2,5],"data":10,"debian":2,"deck":3,"depend":2,"destin":[5,6,9],"detail":9,"develop":2,"devic":[3,11],"discov":10,"discover":5,"discoveri":5,"doe":11,"donat":8,"echo":[0,3],"emptor":11,"enabl":5,"entrypoint":2,"establish":9,"ethernet":3,"exampl":[0,5],"explan":1,"fast":2,"feedback":8,"filetransf":0,"find":2,"fix":10,"format":9,"function":9,"further":9,"futur":9,"get":[2,9],"global":2,"goal":9,"hardwar":3,"health":2,"heltec":3,"heterogen":6,"host":2,"human":1,"i":11,"i2p":5,"ident":9,"identif":0,"implic":9,"improv":10,"includ":[2,10],"indic":4,"infrastructur":2,"instal":[2,3],"instanc":[2,6],"interfac":[0,2,5,9,10,11],"internet":2,"introduct":9,"introductori":6,"issu":2,"kei":9,"kiss":5,"lilygo":3,"limit":5,"line":3,"link":[0,9],"list":10,"listen":5,"local":10,"lora":5,"lora32":3,"lunar":2,"maco":2,"manag":10,"manual":4,"mechan":9,"meshchat":2,"minim":0,"mix":2,"mode":5,"modem":3,"motiv":9,"multi":5,"name":[9,10],"network":[2,4,6,9],"new":5,"node":[6,9],"nomad":2,"note":2,"offer":11,"opencom":3,"openwrt":2,"option":5,"over":2,"overview":[6,9],"packet":[3,9],"paramet":5,"person":2,"pi":2,"pipe":5,"platform":2,"port":10,"primit":9,"prioritis":9,"program":[2,10],"propag":9,"protocol":9,"provid":8,"public":[2,9],"publish":10,"pure":2,"python":2,"radio":[2,3],"rak4631":3,"raspberri":2,"rate":5,"reach":9,"refer":[7,9],"remot":[2,5,10],"request":0,"resolv":2,"resourc":9,"respons":[0,2],"ret":2,"reticulum":[1,2,3,4,8,9,10,11],"risc":2,"rncp":10,"rnid":10,"rnode":[3,5],"rnodeconf":10,"rnpath":10,"rnprobe":10,"rnsd":10,"rnstatu":10,"rnx":10,"rule":9,"secur":5,"serial":[3,5,10],"server":5,"servic":10,"setup":9,"shell":2,"sideband":2,"sourc":10,"specif":[2,9],"stack":4,"standalon":2,"start":2,"statu":11,"strategi":2,"support":[3,8],"suprem":3,"system":10,"systemwid":10,"t":3,"t114":3,"t3s3":3,"tabl":4,"tcp":5,"testnet":2,"transport":[6,9],"trustless":6,"try":2,"type":[3,9,11],"ubuntu":2,"udp":5,"understand":9,"unsign":3,"us":[2,9,10,11],"usag":[3,9],"userspac":10,"util":[2,10],"v":2,"v1":3,"v2":3,"v3":3,"v4":3,"wai":2,"what":11,"where":11,"wifi":3,"window":2,"wire":9,"x":3,"xl":3,"your":[2,10]}})
\ No newline at end of file
+Search.setIndex({"alltitles":{"API Reference":[[7,null]],"ARM64":[[2,"arm64"]],"AX.25 KISS Interface":[[5,"ax-25-kiss-interface"]],"Adding Radio Interfaces":[[2,"adding-radio-interfaces"]],"An Explanation of Reticulum for Human Beings":[[1,null]],"Android":[[2,"android"]],"Announce":[[0,"announce"]],"Announce Propagation Rules":[[10,"announce-propagation-rules"]],"Announce Rate Control":[[5,"announce-rate-control"]],"Auto Interface":[[5,"auto-interface"]],"Automated List Sourcing":[[11,"automated-list-sourcing"]],"Backbone Interface":[[5,"backbone-interface"]],"Blackhole Management":[[11,"blackhole-management"]],"Bootstrapping Connectivity":[[2,"bootstrapping-connectivity"]],"Broadcast":[[0,"broadcast"]],"Buffer":[[0,"buffer"]],"Building Networks":[[6,null]],"Building Personal Infrastructure":[[2,"building-personal-infrastructure"]],"Caveat Emptor":[[12,"caveat-emptor"]],"Channel":[[0,"channel"]],"Code Examples":[[0,null]],"Columba":[[8,"columba"]],"Combining Hardware Types":[[3,"combining-hardware-types"]],"Common Interface Options":[[5,"common-interface-options"]],"Communications Hardware":[[3,null]],"Concepts & Overview":[[6,"concepts-overview"]],"Conceptual Overview":[[10,"conceptual-overview"]],"Configuration & Data":[[11,"configuration-data"]],"Configuring Interfaces":[[5,null]],"Connect to the Distributed Backbone":[[2,"connect-to-the-distributed-backbone"]],"Connecting Remotes":[[5,"connecting-remotes"]],"Connecting Reticulum Instances Over the Internet":[[2,"connecting-reticulum-instances-over-the-internet"]],"Contributing to the Global Ret":[[2,"contributing-to-the-global-ret"]],"Creating RNodes":[[3,"creating-rnodes"]],"Creating a Network With Reticulum":[[2,"creating-a-network-with-reticulum"]],"Creating and Using Custom Interfaces":[[2,"creating-and-using-custom-interfaces"]],"Creating and Using a Network Identity":[[10,"creating-and-using-a-network-identity"]],"Cryptographic Primitives":[[10,"cryptographic-primitives"]],"Current Status":[[12,"current-status"]],"Current Usage":[[10,"current-usage"]],"Custom Interfaces":[[0,"custom-interfaces"],[5,"custom-interfaces"]],"Debian Bookworm":[[2,"debian-bookworm"]],"Destination Naming":[[10,"destination-naming"]],"Destinations":[[10,"destinations"]],"Destinations, Not Addresses":[[6,"destinations-not-addresses"]],"Develop a Program with Reticulum":[[2,"develop-a-program-with-reticulum"]],"Discoverable Interfaces":[[5,"discoverable-interfaces"]],"Discovering Interfaces":[[11,"discovering-interfaces"]],"Discovery Parameters":[[5,"discovery-parameters"]],"Donations":[[9,"donations"]],"Echo":[[0,"echo"]],"Enabling Discovery":[[5,"enabling-discovery"]],"Ethernet-based Hardware":[[3,"ethernet-based-hardware"]],"Example Configuration":[[5,"example-configuration"]],"Filetransfer":[[0,"filetransfer"]],"Finding Your Way":[[2,"finding-your-way"]],"Fixed Serial Port Names":[[11,"fixed-serial-port-names"]],"Future Implications":[[10,"future-implications"]],"Getting Further":[[10,"getting-further"]],"Getting Started Fast":[[2,null]],"Goals":[[10,"goals"]],"Heltec LoRa32 v2.0":[[3,"heltec-lora32-v2-0"]],"Heltec LoRa32 v3.0":[[3,"heltec-lora32-v3-0"]],"Heltec LoRa32 v4.0":[[3,"heltec-lora32-v4-0"]],"Heltec T114":[[3,"heltec-t114"]],"Heterogeneous Connectivity":[[6,"heterogeneous-connectivity"]],"Hosting Public Entrypoints":[[2,"hosting-public-entrypoints"]],"I2P Interface":[[5,"i2p-interface"]],"Identification":[[0,"example-identify"]],"Identities":[[10,"understanding-identities"]],"Improving System Configuration":[[11,"improving-system-configuration"]],"Included Utility Programs":[[11,"included-utility-programs"]],"Indices and Tables":[[4,"indices-and-tables"]],"Installation":[[3,"installation"]],"Interface Access Codes":[[10,"interface-access-codes"]],"Interface Modes":[[5,"interface-modes"],[5,"interfaces-modes"]],"Interface Modules & Connectivity Resources":[[8,"interface-modules-connectivity-resources"]],"Interface Types and Devices":[[12,"interface-types-and-devices"]],"Introduction & Basic Functionality":[[10,"introduction-basic-functionality"]],"Introductory Considerations":[[6,"introductory-considerations"]],"KISS Interface":[[5,"kiss-interface"]],"LXMF":[[8,"lxmf"]],"LXMF Interactive Client":[[8,"lxmf-interactive-client"]],"LXMFy":[[8,"lxmfy"]],"LXST":[[8,"id17"]],"LXST Phone":[[8,"lxst-phone"]],"LilyGO LoRa32 v1.0":[[3,"lilygo-lora32-v1-0"]],"LilyGO LoRa32 v2.0":[[3,"lilygo-lora32-v2-0"]],"LilyGO LoRa32 v2.1":[[3,"lilygo-lora32-v2-1"]],"LilyGO T-Beam":[[3,"lilygo-t-beam"]],"LilyGO T-Beam Supreme":[[3,"lilygo-t-beam-supreme"]],"LilyGO T-Deck":[[3,"lilygo-t-deck"]],"LilyGO T-Echo":[[3,"lilygo-t-echo"]],"LilyGO T3S3":[[3,"lilygo-t3s3"]],"Link":[[0,"link"]],"Link Establishment in Detail":[[10,"link-establishment-in-detail"]],"Listeners":[[5,"listeners"]],"Local Blackhole Management":[[11,"local-blackhole-management"]],"MacOS":[[2,"macos"]],"MeshChat":[[8,"meshchat"]],"MeshChatX":[[8,"meshchatx"]],"Micron Parser JS":[[8,"micron-parser-js"]],"Minimal":[[0,"minimal"]],"Mixing Strategies":[[2,"mixing-strategies"]],"Motivation":[[10,"motivation"]],"Network Health & Responsibility":[[2,"network-health-responsibility"]],"Network Identities":[[10,"network-identities"]],"New Destination Rate Limiting":[[5,"new-destination-rate-limiting"]],"Node Types":[[10,"node-types"]],"Nomad Network":[[8,"nomad-network"]],"OpenCom XL":[[3,"opencom-xl"]],"OpenWRT":[[2,"openwrt"]],"Packet Prioritisation":[[10,"packet-prioritisation"]],"Packet Radio Modems":[[3,"packet-radio-modems"]],"Pipe Interface":[[5,"pipe-interface"]],"Platform-Specific Install Notes":[[2,"platform-specific-install-notes"]],"Programs & Utilities":[[8,"programs-utilities"]],"Programs Using Reticulum":[[8,null]],"Protocol Specifics":[[10,"protocol-specifics"]],"Protocols":[[8,"protocols"]],"Provide Feedback":[[9,"provide-feedback"]],"Public Key Announcements":[[10,"public-key-announcements"]],"Publishing Blackhole Lists":[[11,"publishing-blackhole-lists"]],"Pure-Python Reticulum":[[2,"pure-python-reticulum"]],"RAK4631-based Boards":[[3,"rak4631-based-boards"]],"RBrowser":[[8,"rbrowser"]],"RISC-V":[[2,"risc-v"]],"RNMon":[[8,"rnmon"]],"RNS FileSync":[[8,"rns-filesync"]],"RNS Page Node":[[8,"rns-page-node"]],"RNode":[[3,"rnode"]],"RNode LoRa Interface":[[5,"rnode-lora-interface"]],"RNode Multi Interface":[[5,"rnode-multi-interface"]],"RRC":[[8,"rrc"]],"Raspberry Pi":[[2,"raspberry-pi"]],"Reaching the Destination":[[10,"reaching-the-destination"]],"Reference Setup":[[10,"reference-setup"]],"Remote Management":[[11,"remote-management"]],"Remote Shell":[[8,"remote-shell"]],"Requests & Responses":[[0,"requests-responses"]],"Resolving Dependency & Installation Issues":[[2,"resolving-dependency-installation-issues"]],"Resources":[[10,"resources"]],"RetiBBS":[[8,"retibbs"]],"Reticulum Network Stack Manual":[[4,null]],"Reticulum Network Telephone":[[8,"reticulum-network-telephone"]],"Reticulum Relay Chat":[[8,"reticulum-relay-chat"]],"Reticulum Transport":[[10,"reticulum-transport"]],"Reticulum as a System Service":[[11,"reticulum-as-a-system-service"]],"Retipedia":[[8,"retipedia"]],"Security Considerations":[[5,"security-considerations"]],"Serial Interface":[[5,"serial-interface"]],"Serial Lines & Devices":[[3,"serial-lines-devices"]],"Sideband":[[8,"sideband"]],"Standalone Reticulum Installation":[[2,"standalone-reticulum-installation"]],"Support Reticulum":[[9,null]],"Supported Boards and Devices":[[3,"supported-boards-and-devices"]],"Systemwide Service":[[11,"systemwide-service"]],"TCP Client Interface":[[5,"tcp-client-interface"]],"TCP Server Interface":[[5,"tcp-server-interface"]],"Table Of Contents":[[4,"table-of-contents"]],"The Announce Mechanism in Detail":[[10,"the-announce-mechanism-in-detail"]],"The rncp Utility":[[11,"the-rncp-utility"]],"The rnid Utility":[[11,"the-rnid-utility"]],"The rnodeconf Utility":[[11,"the-rnodeconf-utility"]],"The rnpath Utility":[[11,"the-rnpath-utility"]],"The rnprobe Utility":[[11,"the-rnprobe-utility"]],"The rnsd Utility":[[11,"the-rnsd-utility"]],"The rnstatus Utility":[[11,"the-rnstatus-utility"]],"The rnx Utility":[[11,"the-rnx-utility"]],"Transport Nodes and Instances":[[6,"transport-nodes-and-instances"]],"Trustless Networking":[[6,"trustless-networking"]],"Try Using a Reticulum-based Program":[[2,"try-using-a-reticulum-based-program"]],"UDP Interface":[[5,"udp-interface"]],"Ubuntu Lunar":[[2,"ubuntu-lunar"]],"Understanding Reticulum":[[10,null]],"Unsigned RNode v2.x":[[3,"unsigned-rnode-v2-x"]],"Usage with Reticulum":[[3,"usage-with-reticulum"]],"Userspace Service":[[11,"userspace-service"]],"Using Reticulum on Your System":[[11,null]],"Using the Included Utilities":[[2,"using-the-included-utilities"]],"What does Reticulum Offer?":[[12,"what-does-reticulum-offer"]],"What is Reticulum?":[[12,null]],"Where can Reticulum be Used?":[[12,"where-can-reticulum-be-used"]],"WiFi-based Hardware":[[3,"wifi-based-hardware"]],"Windows":[[2,"windows"]],"Wire Format":[[10,"wire-format"]]},"docnames":["examples","forhumans","gettingstartedfast","hardware","index","interfaces","networks","reference","software","support","understanding","using","whatis"],"envversion":{"sphinx":65,"sphinx.domains.c":3,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":9,"sphinx.domains.index":1,"sphinx.domains.javascript":3,"sphinx.domains.math":2,"sphinx.domains.python":4,"sphinx.domains.rst":2,"sphinx.domains.std":2},"filenames":["examples.rst","forhumans.rst","gettingstartedfast.rst","hardware.rst","index.rst","interfaces.rst","networks.rst","reference.rst","software.rst","support.rst","understanding.rst","using.rst","whatis.rst"],"indexentries":{},"objects":{"RNS":[[7,0,1,"","Buffer"],[7,0,1,"","Destination"],[7,0,1,"","Identity"],[7,0,1,"","Link"],[7,0,1,"","MessageBase"],[7,0,1,"","Packet"],[7,0,1,"","PacketReceipt"],[7,0,1,"","RawChannelReader"],[7,0,1,"","RawChannelWriter"],[7,0,1,"","RequestReceipt"],[7,0,1,"","Resource"],[7,0,1,"","Reticulum"],[7,0,1,"","Transport"]],"RNS.Buffer":[[7,1,1,"","create_bidirectional_buffer"],[7,1,1,"","create_reader"],[7,1,1,"","create_writer"]],"RNS.Channel":[[7,0,1,"","Channel"]],"RNS.Channel.Channel":[[7,1,1,"","add_message_handler"],[7,1,1,"","is_ready_to_send"],[7,2,1,"","mdu"],[7,1,1,"","register_message_type"],[7,1,1,"","remove_message_handler"],[7,1,1,"","send"]],"RNS.Destination":[[7,3,1,"","RATCHET_COUNT"],[7,3,1,"","RATCHET_INTERVAL"],[7,1,1,"","accepts_links"],[7,1,1,"","announce"],[7,1,1,"","app_and_aspects_from_name"],[7,1,1,"","clear_default_app_data"],[7,1,1,"","create_keys"],[7,1,1,"","decrypt"],[7,1,1,"","deregister_request_handler"],[7,1,1,"","enable_ratchets"],[7,1,1,"","encrypt"],[7,1,1,"","enforce_ratchets"],[7,1,1,"","expand_name"],[7,1,1,"","get_private_key"],[7,1,1,"","hash"],[7,1,1,"","hash_from_name_and_identity"],[7,1,1,"","load_private_key"],[7,1,1,"","register_request_handler"],[7,1,1,"","set_default_app_data"],[7,1,1,"","set_link_established_callback"],[7,1,1,"","set_packet_callback"],[7,1,1,"","set_proof_requested_callback"],[7,1,1,"","set_proof_strategy"],[7,1,1,"","set_ratchet_interval"],[7,1,1,"","set_retained_ratchets"],[7,1,1,"","sign"]],"RNS.Identity":[[7,3,1,"","CURVE"],[7,3,1,"","KEYSIZE"],[7,3,1,"","RATCHETSIZE"],[7,3,1,"","RATCHET_EXPIRY"],[7,3,1,"","TRUNCATED_HASHLENGTH"],[7,1,1,"","current_ratchet_id"],[7,1,1,"","decrypt"],[7,1,1,"","encrypt"],[7,1,1,"","from_bytes"],[7,1,1,"","from_file"],[7,1,1,"","full_hash"],[7,1,1,"","get_private_key"],[7,1,1,"","get_public_key"],[7,1,1,"","get_random_hash"],[7,1,1,"","load_private_key"],[7,1,1,"","load_public_key"],[7,1,1,"","recall"],[7,1,1,"","recall_app_data"],[7,1,1,"","sign"],[7,1,1,"","to_file"],[7,1,1,"","truncated_hash"],[7,1,1,"","validate"]],"RNS.Link":[[7,3,1,"","CURVE"],[7,3,1,"","ESTABLISHMENT_TIMEOUT_PER_HOP"],[7,3,1,"","KEEPALIVE"],[7,3,1,"","KEEPALIVE_TIMEOUT_FACTOR"],[7,3,1,"","STALE_GRACE"],[7,3,1,"","STALE_TIME"],[7,1,1,"","get_age"],[7,1,1,"","get_channel"],[7,1,1,"","get_establishment_rate"],[7,1,1,"","get_expected_rate"],[7,1,1,"","get_mdu"],[7,1,1,"","get_mode"],[7,1,1,"","get_mtu"],[7,1,1,"","get_q"],[7,1,1,"","get_remote_identity"],[7,1,1,"","get_rssi"],[7,1,1,"","get_snr"],[7,1,1,"","identify"],[7,1,1,"","inactive_for"],[7,1,1,"","no_data_for"],[7,1,1,"","no_inbound_for"],[7,1,1,"","no_outbound_for"],[7,1,1,"","request"],[7,1,1,"","set_link_closed_callback"],[7,1,1,"","set_packet_callback"],[7,1,1,"","set_remote_identified_callback"],[7,1,1,"","set_resource_callback"],[7,1,1,"","set_resource_concluded_callback"],[7,1,1,"","set_resource_started_callback"],[7,1,1,"","set_resource_strategy"],[7,1,1,"","teardown"],[7,1,1,"","track_phy_stats"]],"RNS.MessageBase":[[7,3,1,"","MSGTYPE"],[7,1,1,"","pack"],[7,1,1,"","unpack"]],"RNS.Packet":[[7,3,1,"","ENCRYPTED_MDU"],[7,3,1,"","PLAIN_MDU"],[7,1,1,"","get_q"],[7,1,1,"","get_rssi"],[7,1,1,"","get_snr"],[7,1,1,"","resend"],[7,1,1,"","send"]],"RNS.PacketReceipt":[[7,1,1,"","get_rtt"],[7,1,1,"","get_status"],[7,1,1,"","set_delivery_callback"],[7,1,1,"","set_timeout"],[7,1,1,"","set_timeout_callback"]],"RNS.RawChannelReader":[[7,1,1,"","__init__"],[7,1,1,"","add_ready_callback"],[7,1,1,"","remove_ready_callback"]],"RNS.RawChannelWriter":[[7,1,1,"","__init__"]],"RNS.RequestReceipt":[[7,1,1,"","concluded"],[7,1,1,"","get_progress"],[7,1,1,"","get_request_id"],[7,1,1,"","get_response"],[7,1,1,"","get_response_time"],[7,1,1,"","get_status"]],"RNS.Resource":[[7,1,1,"","advertise"],[7,1,1,"","cancel"],[7,1,1,"","get_data_size"],[7,1,1,"","get_hash"],[7,1,1,"","get_parts"],[7,1,1,"","get_progress"],[7,1,1,"","get_segments"],[7,1,1,"","get_transfer_size"],[7,1,1,"","is_compressed"]],"RNS.Reticulum":[[7,3,1,"","ANNOUNCE_CAP"],[7,3,1,"","LINK_MTU_DISCOVERY"],[7,3,1,"","MINIMUM_BITRATE"],[7,3,1,"","MTU"],[7,1,1,"","blackhole_sources"],[7,1,1,"","get_instance"],[7,1,1,"","interface_discovery_sources"],[7,1,1,"","link_mtu_discovery"],[7,1,1,"","publish_blackhole_enabled"],[7,1,1,"","remote_management_enabled"],[7,1,1,"","required_discovery_value"],[7,1,1,"","should_use_implicit_proof"],[7,1,1,"","transport_enabled"]],"RNS.Transport":[[7,3,1,"","PATHFINDER_M"],[7,1,1,"","await_path"],[7,1,1,"","deregister_announce_handler"],[7,1,1,"","has_path"],[7,1,1,"","hops_to"],[7,1,1,"","next_hop"],[7,1,1,"","next_hop_interface"],[7,1,1,"","register_announce_handler"],[7,1,1,"","request_path"]]},"objnames":{"0":["py","class","Python class"],"1":["py","method","Python method"],"2":["py","property","Python property"],"3":["py","attribute","Python attribute"]},"objtypes":{"0":"py:class","1":"py:method","2":"py:property","3":"py:attribute"},"terms":{"":[0,2,5,6,10,11,12],"0":[0,2,5,7,10,11,12],"00":[10,11],"00000000":10,"00000100":10,"00000111":10,"01":10,"01010000":10,"02":2,"05":0,"0536":11,"06915":5,"08":[0,11],"0f4259fef4521ab75a3409e353fe9073eb10783b4912a6a9937c57bf44a62c1":11,"0x0101":0,"0x20":0,"0x7d":0,"0x7e":0,"0x91c421ddfb8a30a49a71d63447ddb54cebe3465":9,"0xf000":[0,7],"1":[0,2,5,7,10,11],"10":[5,10,11],"100":[0,5,10],"1000":0,"10000000":10,"1024":0,"11":10,"115":10,"115200":[0,5,11],"1178a8f1fad405bf2ad153bf5036bdfd":11,"118":5,"12":[2,5,11],"1200":10,"125":5,"125000":5,"127":5,"128":[6,7,10],"13":11,"13425ec15b621c1d928589718000d814":[6,10],"14":5,"15":5,"150":[5,11],"150m":5,"15m":11,"16":[5,6,10,11],"1625":5,"1625000":5,"167":10,"17":11,"1726dbad538775b5bf9b0ea25a4079c8":11,"18":11,"1800":7,"187":11,"1b03013c25f1c2ca068a4f080b844a10":11,"1h":11,"2":[0,2,5,7,10,11],"20":[5,10,11],"200":[5,11],"201":5,"2023":[2,11],"2026":[],"21":2,"22":5,"2225fdeecaf6e2db4556c3c2d7637294":11,"23":11,"2316":11,"23h":11,"24":[5,11],"2400000000":5,"25":[0,4,12],"255":[5,11],"25519":7,"256":[5,6,7,10,11,12],"2592000":7,"27":11,"29":5,"297":[10,12],"29716":5,"2b489d06eaf7c543808c76a5332a447d":11,"2b9ec651326d9bc274119054c70fb75":11,"2d03725b327348980d570f739a3a5708":11,"2d882c5586e548d79b5af27bca1776dc":11,"2f":0,"2owjajquafianpecac":2,"3":[0,2,5,8,10,11,12],"30":[5,7,11],"30602def3b3506a28ed33db6f60cc6c9":11,"32":[2,7,10],"3278":5,"32m":11,"33":5,"34":5,"360":[5,7],"3600":[0,5],"37428":11,"37429":11,"38":11,"383":7,"3865":11,"399ea050ce0eed1816c300bcb0840938":11,"3a4f8b9c1d2e3f4g5h6i7j8k9l0m1n2o":11,"3b87":5,"4":[7,10,11],"40m":11,"4242":[2,5],"4251":5,"42671":5,"430":10,"4343":5,"44":12,"44318":5,"45":[0,10],"46":11,"464":7,"465":10,"469":11,"48555":5,"49":11,"49555":5,"4965":11,"4e":5,"4faf1b2e0a077e6a9d92fa051f256038":10,"4ghz":5,"5":[0,5,7,10,11,12],"500":[5,7,10,12],"5001":5,"51":[5,10],"512":[5,7,10,12],"52":11,"521c87a83afb8f29e4455e77930b973b":11,"5245a8efe1788c6a1cd36144a270e13b":11,"55":5,"56":11,"564":0,"56m":11,"5757":5,"5858":5,"59":11,"5caf":5,"5d78":5,"5urvjicpzi7q3ybztsef4i5ow2aq4soktfj7zedz53s47r54jnqq":5,"6":[5,7,11],"60":[0,5],"600":5,"63":11,"64":[2,10,11],"68a4aa91ac350c4087564e8a69f84e86":11,"7":[2,5,10,11],"71e5":5,"72":5,"720":[5,7],"7200":5,"73":[5,11],"73cbd378bb0286ed11a707c13447bb1":11,"74":11,"74195":5,"781":11,"7822":11,"7a55144adf826958a9529a3bcf08b149":11,"8":[0,5,11],"80":[9,11],"8001":5,"809":11,"83":[10,11],"84fpy1qbxhcgdseepynmhthcrgmx4nffbytz2gkytoqhvvhjp8eaw1z1eedrnkd19b3b8nilcgvxzkv17ummmeescrpya5w":9,"86":11,"865":5,"865600000":5,"867":5,"867200000":5,"868":10,"88":5,"89":5,"8dd57a738226809646089335a6b03695":11,"9":[2,7,11],"900":10,"9037":11,"921600":11,"941bed5e228775e5a8079fc38b1ccf3f":11,"96":10,"9600":0,"984b74a3f768bef236af4371e6f248cd":11,"99":10,"99714":5,"9fb6d773498fb3feda407ed8ef2c3229":11,"9h":11,"A":[0,2,5,6,7,8,10,11],"And":0,"As":[2,3,5,7,8,9,10,11,12],"At":[2,10],"Be":[7,11],"But":[9,10],"By":[0,2,5,7,10,11],"For":[2,5,6,7,10,11,12],"IN":[0,7],"If":[0,2,3,5,6,7,8,9,10,11,12],"In":[0,2,3,5,6,7,8,10,11,12],"It":[0,2,3,5,6,7,8,10,11,12],"No":[0,2,5,6,10,11,12],"Not":4,"Of":[6,10],"On":[0,2,5,6,11],"One":[2,3,7,10],"Or":[5,11,12],"That":[8,10],"The":[0,2,3,4,5,6,7,8,9,12],"Then":[0,2],"There":[2,6,10,11],"These":[2,5,6,7,8,10,11],"To":[0,2,3,5,6,10,11],"Will":7,"With":[4,5,6,8,10,11],"_":10,"__":10,"______":10,"_______":10,"________":10,"________________":10,"__future__":0,"__init__":[0,7],"__main__":0,"__name__":0,"__str__":0,"a4d":5,"a79f":5,"aarch64":2,"ab":0,"abbrevi":[],"abil":[2,3,11,12],"abl":[0,2,5,7,10,11],"abort":[0,5],"about":[0,2,3,5,6,7,10,11],"abov":[2,3,5,10,11],"absolut":[5,9,12],"abstract":[6,7,10],"abstractmethod":7,"abund":3,"abus":11,"accept":[5,7,9,10,11],"accept_al":[0,7],"accept_app":7,"accept_non":7,"accepts_link":7,"access":[2,4,5,6,7,11],"access_point":[5,6],"accid":8,"accommod":[7,10],"accord":[0,2,6,10],"accordingli":[0,5],"account":6,"achiev":[2,5,6,7,10],"acknowledg":[6,12],"across":[0,3,6,7,10,11],"act":[2,5,7,10,11],"action":[0,11],"activ":[0,2,5,7,8,10],"actor":[10,11],"actual":[0,2,5,6,10,11],"ad":[0,3,4,5,6,7,8,10,11,12],"adapt":[2,3],"add":[0,2,5,6,7,11],"add_argu":0,"add_message_handl":[0,7],"add_ready_callback":7,"addit":[3,5,6,7,8,10,11,12],"addition":[2,3,5,10],"addr":11,"address":[0,2,4,5,7,10,11,12],"adher":7,"adjust":[2,7],"admin":5,"administr":[6,8,10,11],"adopt":10,"adress":[7,10],"advanc":[8,10],"advantag":7,"advers":12,"adversari":[2,6,9],"advertis":[0,5,7],"advic":9,"advis":[5,10],"ae":[7,10,12],"af73":5,"affect":[2,5],"affili":8,"afford":6,"after":[0,2,5,6,7,10,11],"again":[5,10,11],"against":[2,5,10],"agenc":10,"agent":10,"agnost":[6,10],"agnostic":10,"ago":11,"ahead":6,"aim":[2,4,10],"air":[2,3],"airmax":3,"airtim":[5,6],"airtime_limit_long":5,"airtime_limit_short":5,"akin":10,"algorithm":6,"alic":10,"align":[2,11],"aliv":[7,10],"all":[0,2,3,4,5,6,7,8,9,10,11,12],"allevi":3,"alloc":[5,6,7,10,11],"allow":[0,2,3,5,6,7,8,10,11,12],"allow_al":[0,7],"allow_list":7,"allow_non":7,"allowed_hash":11,"allowed_ident":11,"allowed_list":7,"almost":[3,5,10,11],"alon":5,"along":[5,7,10,11],"alongsid":6,"alreadi":[0,2,3,6,7,8,10,11],"also":[0,2,3,4,5,6,7,8,10,11,12],"alter":[2,7,10],"altern":[0,2,5,11],"although":[2,10,12],"alwai":[2,5,6,7,10,11],"amateur":[5,12],"amount":[0,5,6,7,10,12],"amsterdam":[5,11],"an":[0,2,3,5,6,7,8,10,11,12],"analog":8,"analyt":9,"android":[4,5,8,11],"ani":[0,2,3,5,6,7,8,9,10,11,12],"annot":0,"annouce_cap":5,"announc":[4,6,7,8,11],"announce_cap":[5,7],"announce_handl":0,"announce_interv":5,"announce_packet_hash":7,"announce_rate_grac":5,"announce_rate_penalti":5,"announce_rate_target":5,"announced_ident":[0,7],"announceloop":0,"announcesampl":0,"anonym":[2,6,7,10,12],"anoth":[6,7,10,11],"answer":[10,11],"antenna":3,"anymor":2,"anyon":[0,2,3,5,6,7,8,10,11],"anyth":[3,5,8,10,11,12],"anywher":[0,5],"ap":5,"api":[2,4,10,12],"apk":2,"app":[0,2,7,8,10],"app_and_aspects_from_nam":7,"app_data":[0,7],"app_nam":[0,7],"app_timeout":0,"append":[0,10],"appli":[5,7,10],"applic":[0,5,6,7,8,10,11,12],"approach":[2,3,6,10,11],"appropri":[5,6],"approv":[6,10],"approxim":[5,11],"april":2,"apt":2,"ar":[0,2,3,5,6,7,8,9,10,11,12],"arbitrari":[7,10,11,12],"arch":2,"architect":9,"architectur":[2,8],"archiv":8,"area":[2,3,5,6,10,12],"arg":0,"argon":0,"argpars":0,"argument":[0,7,11],"argumentpars":0,"arm64":4,"around":[2,5,10],"arrai":2,"arriv":[0,10],"arx":11,"ask":[0,2,3,7,8],"aspect":[0,2,3,5,6,7,10,11],"aspect_filt":[0,7],"assign":[0,6,10,11],"assist":8,"associ":[7,10,11],"assum":[5,6,10],"assumpt":[6,9],"asymmetr":[10,11,12],"asynchron":6,"attach":[8,11],"attached_interfac":7,"attack":2,"attain":2,"attempt":[0,2,3,7,11],"attent":9,"attribut":7,"atx":11,"audit":12,"auth":11,"authent":[5,6,7,8,10,11,12],"author":[10,11],"authorit":10,"auto":[2,3,4,7,10,11],"auto_compress":7,"autoconfigur":12,"autoconnect_discovered_interfac":[5,11],"autodiscov":5,"autoinstal":[3,11],"autointerfac":[2,3,5,11],"autom":[2,3,4,8,9,10],"automat":[0,2,5,6,7,8,10,11,12],"autonom":[6,10],"autonomi":12,"avail":[0,2,3,4,5,6,7,8,10,11,12],"averag":10,"avoid":[3,10,11],"awai":[0,5,10,11],"await_path":7,"awar":[2,5,10],"ax":[4,12],"ax25kissinterfac":5,"b":[0,11],"b32":5,"back":[0,5,10,12],"backbon":[3,4,6,11],"backboneinterfac":[2,5,11],"backend":[5,10],"background":[2,5,11],"backhaul":[3,6],"backup":11,"balanc":5,"band":[3,10],"bandwidth":[2,5,6,7,8,10,11,12],"bare":[0,5],"barrier":[5,10],"base":[4,5,6,7,8,10,11,12],"base32":[5,11],"base64":11,"bash":5,"basi":[5,7,10,11,12],"basic":[0,2,4,5,6,7,11],"baud":[5,11],"baud_flash":11,"baudrat":0,"bb":[],"bc1pgqgu8h8xvj4jtafslq396v7ju7hkgymyrzyqft4llfslz5vp99psqfk3a6":9,"bc7291552be7a58f361522990465165c":11,"beacon":5,"beauti":8,"becaus":[6,10],"becki":0,"becom":[0,2,5,6,7,10],"been":[0,2,3,5,6,7,8,9,10,11,12],"befor":[0,2,5,6,7,9,10,11],"begin":[0,3,7],"begun":7,"behalf":[5,6],"behav":[3,8],"behaviour":[2,5,11],"behind":[2,5,9,10],"being":[2,5,7,10],"beings":10,"belief":10,"belong":[6,10,11],"below":[3,5,11],"benefici":[5,11],"best":[2,6,10,12],"better":[2,5,6,9,10],"between":[0,5,6,7,8,10,11],"bi":[7,10],"bidirect":10,"billion":[6,10],"bin":[2,5,11],"binari":[0,2,5,6,7,10,11],"bind":5,"bit":[0,2,5,6,7,8,10,11,12],"bitcoin":9,"bitrat":[0,5,7],"blackhol":[2,4,6,7,10],"blackhole_sourc":[7,11],"blackholed_ident":11,"blackholeupdat":11,"ble":5,"blindli":11,"blob":[0,10],"block":[2,5,6,7,8,10,11],"blocklist":11,"bluetooth":11,"board":[2,4,5,8,10,12],"bogu":5,"boil":3,"bookworm":4,"bool":7,"boot":[2,11],"bootstrap":[4,5,11],"bootstrap_onli":[2,5],"bot":8,"both":[0,2,3,5,6,7,8,10,11,12],"bounc":2,"bound":6,"boundari":[5,6,10],"box":3,"break":[2,7,10,12],"breath":2,"breviti":11,"bridg":[3,5],"briefli":[3,10],"bring":[5,11],"brittl":2,"broad":[2,3],"broadcast":[2,4,5,6,7,10,11],"broadcast_destin":0,"broadcastloop":0,"broader":[2,10],"broken":2,"brought":[5,11],"brows":8,"browser":8,"buffer":[4,5,7,12],"bufferedread":7,"bufferedrwpair":7,"bufferedwrit":7,"bufferexampl":0,"bug":[8,9,12],"build":[0,3,4,5,8,10,12],"built":[2,5,6,8,10,11,12],"bulletin":8,"bundl":0,"bureaucrat":12,"burst":5,"bw":11,"bypass":9,"byte":[0,6,7,10,11,12],"bytes":0,"c":[0,11],"c50cc4e4f7838b6c31f60ab9032cbc62":11,"c89b4da064bf66d280f0e4d8abfd9806":11,"cabl":5,"cach":[5,6,11],"calcul":[6,7,10,11],"call":[0,6,7,8,10,12],"callabl":[0,7],"callback":[0,7],"callsign":5,"can":[0,2,3,4,5,6,7,8,9,10,11],"cancel":7,"candid":6,"cannot":[0,2,5,6,12],"cap":5,"capabl":[0,2,5,6,10],"capac":[2,3,5,6,7,10],"car":6,"carambola":0,"care":[2,6,7,11,12],"carefulli":2,"cargo_build_target":2,"carri":[5,6,7,10,11,12],"carrier":[6,12],"case":[0,2,3,5,6,10,11],"cat":11,"categori":3,"caus":[2,5],"caution":5,"caveat":4,"cb":[7,10],"cbc":[10,12],"cdma":5,"cell":6,"censor":[10,11],"censorship":[10,12],"central":[2,3,5,6,8,10,11],"centralis":10,"certain":[0,5,6,9,10,11],"chain":5,"challeng":[2,8,10],"chanc":3,"chang":[0,2,5,7,10,11,12],"channel":[2,4,5,6,7,9,10,12],"channelarg":0,"channelexampl":0,"chapter":[2,3,5,6,7,8,10,11,12],"chapther":[],"charact":[0,5],"characterist":[5,6,10],"charter":10,"chat":4,"cheap":[3,5,10],"cheapli":2,"check":[0,2,7,10,11],"checksum":[7,12],"choic":[2,6],"choos":[0,2,5,8,10],"chose":10,"chosen":10,"chunk":0,"cific":5,"ciphertext":7,"ciphertext_token":7,"circumst":[9,10],"cl":0,"claim":10,"class":[0,6,7,12],"clear":[0,5,7,11],"clear_default_app_data":7,"clear_screen":0,"client":[0,3,4,7,11],"client_buffer_readi":0,"client_connect":0,"client_disconnect":0,"client_ident":0,"client_loop":0,"client_message_receiv":0,"client_packet_receiv":0,"client_request":0,"clone":10,"close":[0,6,7,11],"closed_callback":7,"closer":[8,10],"closest":10,"cloud":[5,8],"cluster":10,"co":[3,5,12],"code":[2,3,4,5,6,8,9,11],"codingr":5,"coexist":6,"collabor":10,"collaps":2,"collect":[2,9],"collis":6,"columba":4,"com":[0,9],"combin":[2,4,8,10],"come":[2,5,6,10],"comma":[5,11],"command":[0,2,5,8,11],"comment":[5,11],"commis":[],"commit":[2,8],"common":[0,2,3,4,6,10,11,12],"commonli":[3,5],"commun":[0,2,4,5,6,7,8,9,10,11,12],"communica":5,"compar":6,"compat":[0,2,3,5,7,8,10,11],"compil":2,"complet":[0,2,3,5,6,7,8,10,11,12],"complex":[2,5,9,10],"compli":6,"compon":[3,9,10],"compos":10,"comprehens":[8,9],"compress":[0,7,10,11,12],"compromis":10,"comput":[2,5,10,12],"computation":[5,11],"concaten":7,"conceiv":[2,3],"concept":[4,10,11],"conceptu":4,"concert":10,"conclud":[0,7],"concurr":[3,10,11],"condit":[2,10,12],"conf":[2,8],"config":[0,2,5,6,11],"configarg":0,"configdir":7,"configpath":0,"configur":[0,2,3,4,6,7,10,12],"configuraion":3,"configure_devic":0,"confirm":[6,10,12],"conflict":[2,6],"confus":[3,10],"congest":10,"conjunct":5,"connect":[0,3,4,7,9,10,11,12],"consequ":[6,10],"conserv":5,"consid":[0,2,5,7,8,10,11,12],"consider":[4,10],"consist":10,"consol":11,"constant":7,"constantli":10,"constitut":[2,10],"constrain":[6,7],"construct":[10,12],"constructor":0,"consum":[6,7],"consumpt":6,"contact":[6,8,10],"contain":[0,5,6,7,10,11],"contend":10,"content":[0,2,6,8,11],"context":[2,10,11],"contin":[0,2],"continu":[5,7,9,11,12],"contribut":[4,6,9],"control":[0,2,3,4,6,7,8,10,11,12],"convei":0,"conveni":[0,11],"convent":[0,6],"converg":[2,6,10],"convers":[8,10],"cook":2,"coordin":[5,6,7,10,12],"copi":11,"core":[6,10,11,12],"correct":[0,5,6,10],"correctli":[0,6],"correspond":[6,10],"cost":[3,5,10,12],"could":[0,2,5,6,7,10,11,12],"count":[8,10],"counter":0,"cours":[2,5,6,8,10],"cover":[2,3,6,10,12],"coverag":6,"cpu":[0,5,6,10],"cpuinfo":11,"cr":11,"creat":[0,4,5,6,7,8,11,12],"create_bidirectional_buff":[0,7],"create_kei":7,"create_read":7,"create_receipt":[0,7],"create_writ":7,"creation":[6,8,10,11,12],"creator":10,"credenti":[5,10],"critic":[6,10,11],"cross":[5,8],"crucial":6,"cryptograph":[2,4,5,6,11,12],"cryptographi":[2,10,12],"ctrl":0,"cull":7,"curl":5,"current":[0,2,4,5,7,8,11],"current_download":0,"current_filenam":0,"current_ratchet_id":7,"curv":[6,7,10,12],"curve25519":[6,7,10,12],"custom":[3,4,7,8,10,12],"custom_network_nam":5,"customis":5,"d":11,"d56a4fa02c0a77b3575935aedd90bdb2":11,"daemon":[0,2,5,7,8,11],"dai":[7,8],"data":[0,2,3,4,5,6,7,10,12],"data_buff":0,"data_port":5,"databas":[8,11],"databit":[0,5,11],"datacent":2,"datar":5,"date":[0,2,11],"datetim":0,"db":[0,11],"dbm":[0,5,11],"de":[],"deal":5,"debian":[4,10,11],"debug":[2,11],"decad":[3,9],"decentr":[2,5,11],"decentralis":12,"decid":[5,6,7,10],"decim":5,"decis":[5,6,10],"declar":10,"decod":[0,5,11],"decreas":11,"decrypt":[5,6,7,10,11],"dedic":[5,10],"deep":2,"def":0,"default":[0,2,3,5,6,7,8,10,11],"default_ifac_s":0,"defin":[0,5,7,10,11],"definit":[0,2,10,11],"defunct":11,"degrad":6,"degre":5,"delai":[5,8,10,11],"deleg":10,"delimit":0,"deliv":[0,2,6,7,8],"deliveri":[0,6,7,8,12],"demand":7,"demonstr":[0,2,5],"depend":[0,3,4,5,6,7,10,11],"deploi":10,"deregist":7,"deregister_announce_handl":7,"deregister_request_handl":7,"deriv":[2,6,7,10,12],"describ":[3,5,7,10],"descript":[0,11],"descriptor":0,"deseri":0,"deserializ":0,"design":[2,3,5,6,8,9,10,11,12],"desir":[0,3,5,10],"desktop":[5,8],"dest_len":0,"destin":[0,2,4,7,11],"destination_1":0,"destination_2":0,"destination_clos":0,"destination_hash":[0,7,11],"destination_hexhash":0,"detach":5,"detail":[0,2,4,5,7,11,12],"detect":0,"determin":[2,6,7,10],"detriment":11,"dev":[0,2,5,11],"devel":2,"develop":[3,4,7,8,9,10,12],"devic":[0,2,4,5,6,7,8,10,11],"dh":7,"dhcp":[3,5,6,11],"dict":0,"dictat":11,"dictionari":11,"did":[0,8],"differ":[0,2,3,5,6,7,8,10,11,12],"diffi":[6,10],"difficult":[2,3,11],"difficulti":[5,11],"digit":[2,3,10,12],"dir":0,"dire":3,"direct":[0,2,3,6,7,8,10,11],"direction":10,"directli":[2,3,5,6,7,8,10,11,12],"directori":[0,2,5,6,11],"disabl":[5,10,11],"disappear":[5,11],"disassoci":10,"discard":[2,7,10],"disconnect":[0,2,5],"discov":[2,4,5,6,7,8,10],"discover":[2,4,11],"discover_interfac":11,"discoveri":[2,4,7,10,11],"discovery_bandwidth":5,"discovery_encrypt":5,"discovery_frequ":5,"discovery_modul":5,"discovery_nam":5,"discovery_port":5,"discovery_scop":5,"discovery_stamp_valu":5,"discrimin":6,"discuss":[3,10],"disk":[0,7,11],"displai":[0,5,6,8,10,11],"disrupt":5,"dissolv":6,"distanc":[3,10,11],"distant":[2,7,10],"distinct":[5,6,10],"distinguish":[6,10],"distribut":[0,4,6,7,8,10,11,12],"dive":2,"divid":7,"divmod":0,"dn":[3,5,8],"dnf":2,"do":[0,2,3,5,6,7,10,11],"document":[2,7,8,10,11],"doe":[0,2,3,4,5,7,8,10,11],"doesn":[5,6],"domain":[2,5,10,11],"don":[0,2,6,7,10,11],"donat":4,"done":[0,2,5,10,11],"dot":[10,11],"doubt":2,"dowload":2,"down":[0,3,5,7,11],"download":[0,2,5,6,8,11],"download_began":0,"download_conclud":0,"download_finish":0,"download_start":0,"download_tim":0,"downstream":11,"drag":8,"drastic":11,"drive":9,"driver":[11,12],"droid":2,"drop":[5,6,7,8,10,11],"dsrdtr":0,"dual":[3,11],"dublin":11,"due":0,"dump":11,"duplex":[10,12],"durat":11,"dynam":[2,5,8,11],"dysfunct":9,"e":[0,11],"e5c032d3ec4e64a6aca9927ba8ab73336780f6d71790":11,"e702c42ba8":11,"e7536ee90bd4a440e130490b87a25124":11,"each":[0,2,5,6,7,8,10,11],"earli":8,"earlier":10,"eas":[5,10],"easi":[2,3,5,8,10,11,12],"easier":[2,5,6,11,12],"easiest":[2,3,5,10],"easili":[2,5,6,10,11,12],"eastern":10,"ecdh":[10,12],"echo":4,"echo_destin":0,"echo_request":0,"ecosystem":[2,5,8,10,11],"ed25519":[10,12],"edit":[2,11],"eeprom":11,"effect":[5,10,11],"effici":[0,2,5,6,7,8,10,11,12],"effort":3,"effortlessli":8,"eg":11,"ei":0,"either":[2,3,6,7,10,11],"elaps":5,"element":6,"elif":0,"elimin":6,"ellipt":[6,7,10,12],"els":[0,6,8,9,10,12],"elsewher":[],"email":8,"embed":3,"emerg":8,"emiss":8,"emploi":[3,10],"empow":12,"empti":0,"emptor":4,"emul":2,"enabl":[0,2,3,4,6,7,8,10,11,12],"enable_ratchet":7,"enable_remote_manag":11,"enable_transport":[5,10,11],"encapsul":[5,12],"encod":[0,7,8,11],"encount":[2,6],"encourag":2,"encrypt":[0,2,5,6,7,8,10,11,12],"encrypted_mdu":7,"end":[0,5,6,7,8,10,12],"endless":5,"endpoint":[0,6,7,8,10],"energi":2,"enforc":[5,7,10,11],"enforce_ratchet":7,"engin":[2,8,9],"enhanc":10,"enough":[2,3,5,8,10],"ensur":[0,2,5,6,7,8,10,11,12],"ensurepath":2,"enter":[0,11],"entir":[0,2,6,7,8,10,11],"entiti":[6,10,11],"entri":[0,2,10,11],"entrypoint":[4,5,11],"enumer":0,"envelop":7,"environ":[2,5,6,9,10],"environment":10,"environmentlogg":10,"eof":5,"ephemer":[6,7,10,12],"epub":4,"equal":[6,7,10],"equip":[5,6,10],"equival":5,"erron":9,"error":[0,2,5,9,11],"esc":0,"esc_mask":0,"escap":0,"esp32":3,"especi":[2,3,5],"essenti":[2,5,8,10,11],"establish":[0,2,5,6,7,8,11,12],"established_callback":7,"establishment_timeout_per_hop":7,"etc":11,"eth0":5,"eth1":5,"ethereum":9,"ethernet":[2,4,5,6,8,10,12],"even":[0,2,5,6,7,8,10,11,12],"event":5,"eventu":7,"ever":10,"everi":[0,2,5,6,7,10,11],"everydai":2,"everyon":[2,8,9,10],"everyth":[0,6,8,9,10],"evolv":[2,6,10],"exact":[3,5,10],"exactli":[7,10],"exampl":[2,3,4,6,7,10,11,12],"example_util":0,"exampleannouncehandl":0,"exampleconfig":[2,11],"exampleinterfac":0,"exce":[0,5,7],"except":[0,5,7],"excess":[5,11],"exchang":[6,7,10,12],"exclud":[7,10],"exclus":[],"execstart":11,"execstartpr":11,"execut":[0,2,5,7,11],"exhaust":[3,8,10,11],"exist":[0,2,3,5,6,8,10,11,12],"exit":[0,5,7,11],"expand":[6,8,10,12],"expand_nam":7,"expect":[0,5,7,9,10,11],"expens":[3,5],"experi":[6,8,10],"experienc":0,"experiment":12,"expir":5,"expiri":[5,7],"explain":[3,7],"explan":[10,11],"explicit":7,"explicitli":[5,6,10,11],"explor":[0,8,10,12],"export":[2,11],"expos":[5,7,11],"exposur":5,"extend":[0,7],"extens":[5,8,12],"extern":[0,2,5,7,11,12],"extra":[2,5,11],"extract":11,"extrem":[2,8,10,11,12],"f":[0,2,11],"f4":5,"f53a1c4278e0726bb73fcc623d6ce763":11,"fabric":6,"face":[5,8],"facilit":[8,10],"fact":[2,5,12],"factor":[5,7,11],"fail":[0,2,5,7],"failed_callback":[0,7],"failur":[2,5,7],"fake":11,"fals":[0,5,6,7],"famili":2,"familiar":8,"far":[2,6,10],"fashion":9,"fast":[4,5,6,7,8,10],"faster":[2,5,10],"fastest":[5,10],"favor":2,"favorit":8,"fe80":2,"featur":[2,5,6,7,8,9,10,12],"feder":[8,10,11],"fedora":2,"feed":[2,7],"feedback":[0,4],"feel":8,"fernet":10,"fetch":[5,11],"few":[2,3,5,6,8,10,11,12],"fewer":7,"ff":11,"fi":9,"fiber":3,"fibr":12,"field":10,"file":[0,2,3,5,6,7,8,10,11,12],"file_resourc":0,"file_s":0,"filelist":0,"filelist_data":0,"filelist_receiv":0,"filelist_timeout_job":0,"filenam":0,"filesync":4,"filetransf":[4,7],"filter":[0,6,10,11],"final":[0,7,10],"find":[4,5,8,10,11],"find_spec":0,"fine":5,"firewal":[2,5,6],"firmwar":[2,3,10,11],"firmware_hash":11,"first":[0,2,5,6,7,10,11],"fit":0,"five":0,"fix":[4,10],"fixed_mtu":5,"flag":[0,2,7,10,11],"flash":11,"flasher":2,"fleet":10,"flexibl":[2,3,5,6,8,12],"fli":10,"flight":7,"float":[0,7],"flood":[5,11],"flow":[0,2,5,6,10],"flow_control":5,"flush":0,"focu":11,"focus":[8,10],"folder":0,"follow":[0,2,3,5,7,9,10,11,12],"forc":[0,11],"forcibli":[7,11],"foreground":2,"foremost":12,"forget":[6,11],"fork":8,"form":[2,5,6,7,10,11],"format":[0,4,8,11,12],"forth":0,"forward":[5,6,7,8,10,12],"forward_ip":5,"forward_port":5,"found":[0,2,5,7,10,11],"foundat":[6,9,10,12],"frame":[0,5],"framework":8,"free":[2,6,8,9,12],"freedom":10,"freedv":3,"freeli":10,"freq":11,"frequenc":[2,3,5,10,11],"frequent":[5,6],"friend":2,"friendli":8,"from":[0,2,3,5,6,7,8,9,10,11,12],"from_byt":7,"from_fil":7,"from_identity_hash":7,"fromhex":0,"front":10,"frontend":8,"fruit":0,"ftdi_ft230x_basic_uart_43891ckm":11,"full":[0,2,5,6,7,8,10,11,12],"full_hash":7,"full_nam":[7,11],"fulli":[0,2,3,5,8,10,11,12],"funcion":7,"function":[0,2,3,4,5,6,7,8,9,11,12],"fundament":[3,6,10,11],"further":[2,4,5],"futur":[4,6,7,8,11],"fw":11,"g":[0,10,11],"ga":0,"gain":[3,7,10],"galact":10,"gap":2,"gatekeep":10,"gatewai":[0,2,5,6,10,11],"gbp":11,"gener":[0,2,3,5,6,7,10,11,12],"generalis":12,"genuin":11,"geograph":[2,5],"get":[0,3,4,5,6,7,8,11],"get_ag":7,"get_channel":[0,7],"get_config_obj":0,"get_data_s":7,"get_establishment_r":7,"get_expected_r":7,"get_external_ip":5,"get_hash":7,"get_inst":7,"get_mdu":7,"get_mod":7,"get_mtu":7,"get_packet_rssi":0,"get_packet_snr":0,"get_part":7,"get_private_kei":7,"get_progress":[0,7],"get_public_kei":7,"get_q":7,"get_random_hash":[0,7],"get_remote_ident":[0,7],"get_request_id":7,"get_respons":7,"get_response_tim":7,"get_rssi":7,"get_rtt":[0,7],"get_seg":7,"get_snr":7,"get_statu":7,"get_transfer_s":7,"geti2p":5,"ghz":10,"gi":0,"gigabit":6,"gigabyt":12,"git":[],"github":[0,2],"give":[2,5,10,11],"given":[5,6,7,10,11],"global":[0,4,5,6,7,10,11,12],"glue":3,"go":[0,5,6,10],"goal":[2,4,5,6,8],"goe":[],"good":[2,3,6,10,11],"got":0,"got_respons":0,"govern":10,"gpio":8,"grace":7,"gracefulli":[5,6],"grant":11,"grape":0,"graphic":8,"gratefulli":9,"great":[2,10],"greater":[7,10,11,12],"greatli":[2,5],"grid":8,"group":[5,7,8,10],"group_id":5,"groupinstal":2,"grow":2,"grown":[],"growth":2,"guarante":[6,9,10],"guess":5,"gui":8,"guid":[2,3,8,10],"guidelin":2,"guilt":8,"gw":5,"h":11,"ha":[0,3,5,6,7,8,9,10,12],"hack":12,"had":10,"half":[10,12],"hand":0,"handheld":10,"handl":[0,2,3,5,6,7,8,10,11,12],"handler":[0,7,11],"happen":[0,2,7,10],"hard":[2,3],"hardcod":[],"hardlin":6,"hardwar":[0,2,4,5,7,8,10,11,12],"has_path":[0,7],"hasattr":0,"hash":[0,6,7,10,11],"hash1":10,"hash2":10,"hash_from_name_and_ident":7,"hashlib":10,"hashmap":0,"have":[0,2,3,5,6,7,8,9,10,11],"hazard":7,"hdlc":0,"head":[],"header":[0,5,7,10],"header_1":10,"header_2":10,"health":4,"hear":10,"heard":[7,8,10,11],"height":5,"held":[5,11],"helium":0,"hellman":[6,10],"help":[0,2,6,9,10,11],"helper":0,"here":[0,2,5,10,11],"heterogen":[2,4,12],"hex":[0,11],"hexadecim":[0,10,11],"hexbyt":11,"hf":8,"hidden":11,"hide":2,"hierarch":12,"high":[3,5,6,10,11,12],"higher":[5,6,12],"highest":7,"highli":[5,9,10],"hint":0,"histori":8,"hit":0,"hkdf":10,"hmac":[10,12],"hoc":12,"hold":[5,7,10],"holder":6,"home":[2,6,8,11],"homebrew":5,"hop":[5,6,7,10,11,12],"hopefulli":6,"hops_to":7,"host":[0,4,5,6,8,10,11],"hostnam":5,"hour":[0,5,11],"hous":2,"how":[0,2,3,5,6,8,10,11,12],"howev":[2,5,6,10],"http":[0,8,9],"hub":[5,8,11],"human":[0,5,6,7,9,10],"hundr":[2,6,8],"hungri":3,"hw_mtu":0,"hwrev":11,"hz":[5,11],"i":[0,2,3,4,5,6,7,8,9,10,11],"i2p":[2,4,6,8,12],"i2p_tunnel":5,"i2pd":[2,5],"i2pinterfac":[2,5],"ia":11,"ic":3,"ic_burst_freq":5,"ic_burst_freq_new":5,"ic_burst_hold":5,"ic_burst_penalti":5,"ic_held_release_interv":5,"ic_max_held_announc":5,"ic_new_tim":5,"icmp":8,"id":[5,7,10,11],"id_callsign":5,"id_interv":5,"idea":[2,10,11],"ideal":[8,12],"ident":[0,2,4,5,6,7,8,11,12],"identif":[4,5,12],"identifi":[0,5,6,7,10,11],"identifyexampl":0,"identity_data":11,"ie":11,"if00":11,"ifac":[0,2,5,6,10,11],"ifac_s":5,"ifconf":0,"ifconfig":11,"ignor":[5,6,7,9,10,11],"ignored_devic":5,"illustr":[0,5,10],"imagin":6,"immedi":[5,11],"impact":[5,6,7,10],"imperson":6,"implement":[0,5,6,7,8,9,10,12],"implic":[4,5,6],"implicit":[6,7,10],"implicitli":11,"import":[0,2,3,5,6,7,9,10,11],"importantli":2,"importlib":0,"imposs":10,"impract":11,"improv":[2,4,5,8,9],"in_fram":0,"in_wait":0,"inactive_for":7,"inadvert":11,"inbound":[0,5,7],"inbox":6,"includ":[0,3,4,5,6,7,8,10,12],"inclus":6,"incom":[0,5,7,11],"incompat":[7,10],"incomplet":6,"increas":[5,7,11],"incur":5,"indefinit":11,"independ":[7,10],"index":[0,2,4],"indic":[0,7],"indirectli":10,"individu":[2,5,7,9,10,11,12],"inevit":[2,10],"infer":10,"influx":[5,8],"influxdb":8,"info":[7,10,11],"inform":[0,2,4,5,6,7,8,9,10,11],"infrastructur":[3,4,5,6,8,10,11],"ingo":7,"ingress":[0,5],"ingress_control":5,"inher":6,"init":2,"initi":[0,5,6,7,10,12],"initialis":[0,7,11],"input":[0,11],"insert":10,"insid":10,"inspect":[2,5,6,10,11],"instal":[0,4,5,10,11,12],"instanc":[0,4,5,7,8,10,11],"instance_control_port":11,"instance_nam":11,"instanti":7,"instantli":11,"instead":[0,2,5,7,10,11],"instruct":2,"int":[0,7],"integ":[0,7],"integr":[2,8,10,11],"intend":[2,5,6,10,11],"intens":11,"intent":6,"intention":[8,10],"inter":[2,7,10],"inter_byte_timeout":0,"interact":[0,2,4,6,7,10,11],"intercept":6,"interchang":5,"interconnect":[2,5,6,10],"interest":[8,10],"interfac":[3,4,6,7],"interface_class":0,"interface_discovery_sourc":[7,11],"interface_en":11,"interfer":[6,11],"intermedi":6,"intermediari":[5,7,10],"intermitt":[5,6],"intern":[0,5,7,10],"internal_1":5,"internet":[4,5,6,8,10,11,12],"internetwork":2,"interoper":[3,6,8,10,12],"interrupt":5,"interv":[5,7,11],"intervent":11,"intiat":0,"introduc":10,"introduct":4,"introductori":4,"intuit":[6,12],"invalid":[0,5,7],"invers":10,"invest":6,"invis":[2,5],"invit":5,"involv":[6,9],"io":3,"iodin":8,"ioerror":0,"iot":3,"ip":[2,3,5,6,10,11,12],"ipv4":5,"ipv6":[2,5,11],"irc":8,"irrelev":9,"is_compress":7,"is_connected_to_shared_inst":0,"is_open":0,"is_path_respons":7,"is_ready_to_send":[0,7],"isdir":0,"isfil":0,"isinst":0,"ism":[3,10],"isol":[2,5,11],"isp":[5,6],"issu":[4,5,6],"its":[3,5,6,7,10,11],"itself":[4,6,8,10,11],"iv":[10,12],"j":[4,11],"jail":11,"javascript":8,"job":0,"join":[0,2,6,8,10],"journei":6,"json":11,"just":[0,2,3,5,6,8,10,12],"k":[0,11],"kb":11,"kbp":11,"keep":[0,2,6,7,10,11,12],"keepal":[7,10],"keepalive_timeout_factor":7,"kei":[0,4,5,6,7,11,12],"kept":[5,6,7,10],"kernel":[5,11,12],"keyboardinterrupt":0,"keyerror":7,"keypad":8,"keypair":[6,10],"keyset":[10,11,12],"keysiz":7,"keystor":6,"khz":5,"ki":0,"kill":[7,10],"kind":[3,5,6,8,10],"kiss":[3,4,8,11,12],"kiss_fram":5,"kissinterfac":[5,11],"know":[0,2,3,5,6,7,10],"knowledg":[6,10],"known":[0,5,7,10,11],"ko":9,"krypton":0,"l":[5,11],"lack":10,"laid":10,"lan":5,"languag":8,"laptop":6,"larg":[0,3,5,6,7,10,11,12],"larger":[6,10,11],"laser":5,"last":[0,5,7,11],"last_read_m":0,"last_unit":0,"latenc":[2,6,10,12],"later":[0,2,5,8,11],"latest":[0,2,5,7,11],"latest_buff":0,"latest_client_link":0,"latitud":5,"laucnh":2,"launch":[8,11],"layer":[3,5,6,7,8,10,11,12],"lcd":8,"lead":[2,10],"leak":2,"learn":[0,2,6,9,10],"least":[2,3,5,6,10,11,12],"leav":[6,8,10],"ledger":10,"left":[5,7,10,11],"legaci":6,"legal":5,"legisl":5,"legitim":[2,6,11],"len":0,"length":[0,5,7,10],"less":[0,2,3,5,7,10,12],"let":[0,2,5,6,8,10,11],"level":[3,5,6,10,11],"liber":3,"liberapai":9,"libffi":2,"librari":[2,8],"licens":10,"lift":11,"light":11,"lightweight":12,"like":[0,2,3,5,6,7,8,10,11,12],"limit":[0,2,3,4,6,8,10],"line":[0,2,4,5,8,10,11,12],"linger":11,"link":[2,3,4,5,6,7,8,11,12],"link_clos":0,"link_establish":0,"link_id":[0,7],"link_mtu_discoveri":7,"linkexampl":0,"linux":[2,3,5,8,10],"list":[0,2,3,4,5,7,8,10,12],"list_deliv":0,"list_fil":0,"list_filt":11,"list_packet":0,"list_receipt":0,"list_timeout":0,"listdir":0,"listen":[0,2,4,8,10,11],"listen_ip":5,"listen_on":[2,5],"listen_port":5,"littl":[3,8,10],"live":[2,7,8],"lki":10,"lkr":10,"ll":[0,12],"llm":8,"ln":11,"load":[0,2,3,5,7,11,12],"load_private_kei":7,"load_public_kei":7,"local":[0,2,4,5,6,7,8,10,12],"locat":[2,5,6,10,11],"log":[0,2,5,11],"log_crit":0,"log_error":0,"log_info":0,"log_verbos":0,"logdest":7,"logic":10,"loginctl":11,"loglevel":[0,7,11],"long":[0,2,3,5,6,7,10,11],"longer":[0,2,10,11],"longest":5,"longitud":5,"look":[0,2,5,6,8,10,11],"loop":0,"lora":[2,3,4,6,8,10,12],"lorawan":[3,10],"lorem":[],"loss":[5,6,10],"lot":[6,10],"low":[2,3,5,6,8,10,12],"lower":[0,2,5,11],"ltu":3,"lunar":4,"lxmf":[4,5,6,7,11],"lxmfy":4,"lxst":4,"m":[0,2,10,11],"mac":[5,10],"machin":[2,10,11],"machineri":8,"maco":[4,8],"made":[2,5,7,10],"mai":[2,5,6,7,8,10,11],"mailbox":8,"main":0,"maintain":[2,6,10,11],"mainten":[2,6,10],"make":[0,2,3,5,6,8,9,10,11,12],"malici":[2,6,10,11],"malinform":9,"manag":[2,4,6,7,8,10,12],"mani":[0,2,3,5,6,7,8,10,11,12],"manipul":[10,12],"manjaro":2,"manner":[6,8],"manual":[0,2,5,6,7,10,11],"manufactur":[3,5],"map":[5,8,10,11],"mark":[2,7,10],"markqvist":[0,9],"markup":8,"master":[0,7],"match":[0,5,10,11],"materi":8,"matter":[2,5,6],"matur":11,"matvik22000":[],"max":11,"maximum":[0,5,7,10,11],"mbp":11,"mdu":[0,7],"me":5,"mean":[2,3,5,6,7,10,11],"meaning":2,"meantim":7,"measur":[6,10],"mechan":[2,4,5,6,11,12],"medium":[0,3,5,6,7,8,10,12],"member":[2,10],"memori":[2,6,10],"mention":[5,10],"menu":0,"menu_mod":0,"merg":11,"mesh":[2,5,6,10,11,12],"meshchat":4,"meshchatx":4,"messag":[0,2,6,7,8,10,11],"message_class":7,"messagebas":[0,4,7],"messagecallbacktyp":7,"messeng":[6,10],"met":2,"metadata":[2,5,10,11],"metavar":0,"meter":5,"meth":0,"method":[0,2,5,7,10],"methodologi":[10,11],"metric":8,"mevpekyafshak5wr":5,"mhz":[5,10],"mi":0,"microcontrol":10,"micron":4,"microwav":6,"might":[2,5,6,10,11],"mikrotik":3,"millimet":3,"millisecond":[0,6,11],"mind":[6,12],"minim":[3,4,5,10],"minimalsampl":0,"minimum":[0,2,5,7,10,11],"minimum_bitr":7,"minut":[0,2,5,10],"mirror":[6,11],"misconfigur":2,"mislead":2,"miss":[0,2],"mistak":2,"misunderstand":9,"mitig":6,"mix":[4,5,6,11],"mixtur":12,"mobil":[5,6,10],"mode":[0,2,3,4,6,7,8,10,11,12],"model":[6,11],"modem":[4,5,6,7,8,10,12],"modem73":8,"moder":5,"modern":[2,3,8],"modifi":[5,6,10,11],"modul":[0,2,3,4,5,6,10,11,12],"modular":8,"moment":10,"momentarili":5,"monero":9,"monitor":[2,5,8,10,11],"moon":0,"more":[0,2,3,5,6,7,8,9,10,11,12],"most":[2,3,5,6,7,8,10,11],"mostli":[5,6,10],"motiv":4,"move":[5,6,10,11],"msgtype":[0,7],"mtu":[0,5,7,10,12],"much":[2,5,6,10,11,12],"multi":[4,6,8,10,11,12],"multicast":5,"multicast_address_typ":5,"multilater":10,"multipl":[0,5,6,8,10,11],"multiplex":0,"multipoint":10,"multitud":2,"must":[0,2,5,6,7,10,11],"mw":5,"my":[5,10],"my_fil":11,"my_ident":11,"my_network":[10,11],"my_network_ident":5,"mycal":5,"myriad":10,"n":[0,10,11],"name":[0,2,4,5,6,7],"namespac":0,"narg":0,"nat":[2,5],"nativ":[0,6,8],"natur":5,"nearbi":[5,6],"nearest":5,"nears":10,"neat":6,"neccessari":5,"necesarri":5,"necessari":[3,5,6,7,10],"necessarili":10,"need":[0,2,3,4,5,6,7,8,9,10,11,12],"neg":2,"neglig":10,"neither":[7,10],"neon":0,"neopixel":11,"net":5,"netcat":5,"network":[0,3,5,7,11,12],"network_ident":[5,10,11],"network_nam":[2,5],"neutral":6,"never":[5,6,7,10],"new":[0,2,4,6,7,10,11],"new_id":11,"new_ident":11,"newer":[7,10],"newest":10,"newli":[5,7,10],"newlin":5,"next":[2,5,7,10],"next_hop":7,"next_hop_interfac":7,"nicknam":10,"no1cll":5,"no_data_for":7,"no_inbound_for":7,"no_outbound_for":7,"noauth":11,"nobl":0,"noble_ga":0,"noble_gas":0,"nocheck":11,"node":[2,4,5,11,12],"noid":11,"nois":[7,9],"nomad":4,"nomadnet":8,"nomadnetwork":8,"non":[2,5,7,8,10],"none":[0,2,5,7,10,11],"nor":2,"normal":[0,2,5,7,10,11],"notabl":8,"notat":[10,11],"note":[0,3,4,5,7,10,11],"noth":[3,6,12],"notic":[5,10,11],"notif":[0,7],"now":[0,2,10,11],"np":11,"nrf52":3,"nt":0,"num":0,"number":[0,2,5,6,7,8,10,11],"o":[0,2,5,10,11,12],"object":[0,7],"obscur":2,"observ":6,"obtain":[2,3,7,10],"obvious":10,"occur":[0,5,11,12],"ocur":7,"odd":0,"ofdm":8,"off":[2,5,6,8,10,11,12],"offer":[2,4,5,6,7,8,10,11],"offic":6,"offlin":[0,2,6,8],"often":[2,5,6,10,11],"oganesson":0,"old":[0,2,3,9,10],"older":11,"omit":7,"on_interfac":7,"onc":[0,2,3,5,7,10,11,12],"one":[0,2,3,5,6,7,8,10,11,12],"ones":[2,5,6,11],"oneself":10,"ongo":8,"onli":[0,2,3,5,6,7,10,11,12],"onlin":[0,11],"onto":[2,10],"opaqu":6,"open":[0,2,3,5,6,7,8,9,10,11,12],"open_port":0,"openmodem":[5,12],"openssl":[2,10],"openwrt":4,"oper":[2,3,5,6,7,10,11,12],"opinion":9,"opkg":2,"opportun":2,"opportunist":6,"opposit":[0,5],"opt":10,"optic":[3,12],"optim":[2,6],"option":[0,2,3,4,6,7,8,10,11],"ord":0,"order":[0,7,11],"organ":[2,6,10,11],"organis":[5,9],"orient":10,"origin":[0,6,8,10],"os":2,"other":[0,2,3,5,6,7,8,10,11],"otherwis":[0,7],"our":[0,5,10],"ourselv":6,"out":[0,3,5,7,8,10,11],"outbound":[7,10],"outgo":[0,5,7,10,11],"outlin":[2,3,10],"output":[5,11],"outsid":[7,12],"over":[0,3,4,5,6,7,8,9,10,11,12],"overal":[10,11],"overcom":10,"overhead":[2,3,5,10],"overlai":2,"overli":9,"overrid":0,"oversight":10,"overview":[4,5],"overwhelm":[5,6,7],"overwrit":11,"own":[0,2,6,7,10,11,12],"owner":0,"p":[0,11],"pack":[0,7],"packag":[0,2,5,8,10],"packb":0,"packed_s":0,"packet":[0,2,4,5,6,7,8,11,12],"packet_callback":0,"packet_deliv":0,"packet_hash":0,"packet_receipt":[0,7],"packet_timed_out":0,"packetreceipt":[0,4,7],"pad":[10,12],"page":[4,10,11],"pair":[5,7,10,11],"pamac":2,"panic":[0,11],"panic_on_interface_error":[0,11],"paper":8,"par":[0,2],"parallel":2,"param":0,"paramet":[0,3,4,7,10,11],"pariti":[0,5,11],"parity_even":0,"parity_non":0,"parity_odd":0,"pars":0,"parse_arg":0,"parser":[0,4],"part":[0,2,5,6,7,8,10,11],"particip":[2,4,5,6,10,11],"particular":[0,3,5,10,11],"particularli":[5,11],"pass":[0,3,5,6,7,10,11],"passphras":[2,5,6,10],"passport":10,"past":11,"path":[0,2,3,5,6,7,10,11],"path_respons":7,"pathfinder_m":7,"pattern":[3,6,10],"payload":[0,5,7,10,11],"pdf":4,"peach":0,"peer":[0,2,5,7,8,10,11],"penalti":5,"pend":[0,10],"peopl":[2,8,10],"per":[5,6,7,8,10,11,12],"percent":[0,5],"percentag":7,"perfectli":2,"perform":[0,2,5,6,7,8,10,11],"perhap":2,"period":[0,5,7,10,11],"peripher":8,"perman":[2,5,11],"permiss":5,"permissionless":[10,11],"persecut":10,"persist":[5,11],"person":[4,5,6,9,10],"perspect":[5,6,7,10,12],"pet":0,"philosophi":[9,10],"phone":[2,4,6],"phonebook":8,"phy":11,"physic":[0,2,3,5,6,7,8,10,11,12],"pi":[0,4,6,10,11,12],"pick":10,"piec":10,"ping":11,"pip":[0,2,3,5,11],"pip3":2,"pipe":[4,8,12],"pipeinterfac":[3,5,8],"pipx":2,"pitfal":10,"pkcs7":[10,12],"pkg":2,"place":[0,2,5,6,10,11],"plaform":3,"plain":[0,3,5,7,10],"plain_mdu":7,"plaintext":[0,7],"plan":[6,10],"planetari":12,"platform":[0,3,4,8,10,11],"platoform":8,"pleas":[0,2,5,7,11],"plenti":[6,10],"plug":11,"plugin":8,"pmr":10,"point":[2,3,5,6,8,9,10,11],"pointer":2,"polici":11,"pomelo":0,"popul":7,"popular":12,"port":[0,2,3,4,5,6,10,12],"port0":11,"portabl":[5,6,10],"pose":[2,10],"posit":[0,11],"posix":2,"possess":[5,10],"possibl":[2,3,5,6,7,8,10,11,12],"possibli":[2,10],"post":0,"postfix":11,"potenti":[0,2,5,9,10,11,12],"power":[2,3,5,6,8,10,11,12],"powershel":2,"ppp":0,"practic":[6,10,12],"pre":[2,6,7,10],"preambl":[5,11],"preced":0,"preciou":6,"precompil":2,"predict":10,"prefer":[2,9,10],"prefer_ipv6":5,"premis":6,"prepar":[0,10],"prerequisit":7,"presenc":[5,7],"present":[5,6,8,10,11],"preserv":[2,7],"preshar":10,"press":0,"pretend":[8,10],"prettyhexrep":0,"prevent":[5,6,11],"previou":0,"previous":[5,7,10],"primari":10,"primarili":[5,6,8],"primarlii":2,"primit":[2,4],"principl":[6,10,12],"print":[0,5,11],"print_filelist":0,"print_help":0,"print_menu":0,"priorit":[6,10],"prioriti":10,"prioritis":[4,5,6,7],"privaci":[2,5,8,12],"privat":[2,5,6,7,8,9,10,11,12],"private_ret":2,"privileg":11,"probabl":[0,2,6,10,11,12],"probe":11,"problem":[2,10,11],"proc":11,"procedur":[2,7,10],"process":[0,2,3,5,6,7,10,11],"process_incom":0,"process_outgo":0,"product":11,"profound":6,"program":[0,3,4,5,7,10,12],"program_setup":0,"programm":10,"programmat":10,"progress":[0,7,11,12],"progress_callback":7,"project":[8,9],"promis":2,"prompt":[0,2],"proof":[0,5,6,7,10,11],"proof_packet":0,"proof_requested_callback":7,"proof_strategi":7,"propag":[4,5,6,7,8,11],"proper":2,"properli":2,"properti":[0,6,7],"proport":10,"propos":[],"protect":[2,11],"protocol":[2,3,4,5,6,12],"prove":[0,6,10],"prove_al":[0,7],"prove_app":7,"prove_non":7,"proven":[7,10],"provid":[0,2,3,4,5,6,7,8,10,11,12],"provis":[3,11],"prv_byte":7,"pseudo":11,"pub_byt":7,"public":[0,4,5,6,7,9,11],"public_inform":0,"publicli":[2,5,10,11],"publish":[2,4,5,7,10],"publish_blackhol":11,"publish_blackhole_en":7,"publish_ifac":5,"purchas":[2,10,12],"pure":[4,10],"purg":7,"purpos":[2,3,5,6,7,8,10,11],"push":8,"put":[0,3,5,11],"py":[0,10,11],"py3":2,"pyca":[2,10],"pyseri":[0,2],"python":[0,4,5,7,10,11,12],"python3":[0,2,3],"q":[0,11],"qr":[6,8],"quad4":[],"qualiti":[7,11],"quantiti":[],"quarter":[],"queri":[0,2,7,11],"question":[2,3,5],"queu":[7,11],"queue":[5,10],"quickli":[8,9,10,12],"quiet":[5,11],"quinc":0,"quirk":2,"quit":[0,2],"r":[0,5,10,11],"radio":[4,5,6,7,8,10,11,12],"radon":0,"rais":[0,7],"rak":3,"ram":[2,5],"randint":0,"random":[0,7,9,10],"random_text_gener":0,"randomis":10,"randomli":[0,10],"rang":[0,2,3,5,6,10,11,12],"rapidli":5,"rare":[2,5],"raspberri":[4,6,10,11,12],"rasperri":2,"ratchet":[7,10],"ratchet_count":7,"ratchet_expiri":7,"ratchet_id_receiv":7,"ratchet_interv":7,"ratchets":7,"ratchets_path":7,"rate":[0,4,7,8,11],"rather":[2,7,8],"ratio":7,"raw":[0,3,7],"rawchannelread":[4,7],"rawchannelwrit":[4,7],"rawiobas":7,"rb":0,"rbrowser":4,"re":[0,5,6,7,10],"reach":[2,4,5,6,7,11],"reachabl":[0,2,5,6,7,8,10,11],"reachable_on":5,"read":[0,2,5,6,7,10,11],"read_loop":0,"readabl":[0,5,7,10,11],"reader":[0,7],"readi":[0,2,3,5,7,12],"readili":12,"ready_byt":[0,7],"ready_callback":7,"real":[2,3,5,6,8,12],"realiti":[2,9],"realli":[5,7],"reappear":5,"reason":[2,5,10,11],"reassembl":10,"reboot":[],"rebroadcast":6,"recal":[0,7,11],"recall_app_data":7,"recap":10,"receipt":[0,6,7,10],"receiv":[0,2,5,6,7,9,10,11],"receive_path_respons":7,"receive_stream_id":7,"received_announc":[0,7],"recent":[7,10],"recept":7,"reception_rssi":0,"reception_snr":0,"reception_stat":0,"recip":2,"recipi":10,"recogn":10,"recommend":[0,2,5,10],"recondit":11,"reconnect":[0,6],"reconnect_port":0,"reconstruct":10,"record":[2,10],"recoveri":5,"recreat":10,"recurs":[7,10],"reduc":[5,11],"redund":[2,6],"refer":[0,2,4,5,8,11],"refin":9,"refresh":11,"refus":6,"regain":2,"regard":10,"region":5,"regist":[0,7,11],"register_announce_handl":[0,7],"register_message_typ":[0,7],"register_request_handl":[0,7],"regul":5,"regular":11,"rel":[3,5,6,10],"relai":[2,4],"relat":2,"relationship":[6,10,11],"releas":[2,5,7,10],"relev":[0,2,3,5,7,10,11],"reli":[2,5,6,9,10,11],"reliabl":[2,3,5,6,7,10,12],"relianc":2,"relief":6,"reload":11,"rem":0,"remain":[5,6,7,8,10],"rememb":[6,7,10],"remot":[0,4,7,10],"remote_ident":[0,7],"remote_identifi":0,"remote_management_allow":11,"remote_management_en":7,"remote_p":0,"remotesensor":10,"remov":[7,11],"remove_message_handl":7,"remove_ready_callback":7,"render":8,"replac":[0,2,6,7,8,10,11],"repli":[0,11],"replic":[3,10],"reply_data":0,"reply_messag":0,"reply_text":0,"report":[5,7,9,11],"repositori":[2,10],"repres":[6,10],"represent":[0,7],"repurpos":2,"reput":[10,11],"request":[4,5,6,7,10,11,12],"request_destin":0,"request_fail":0,"request_id":[0,7],"request_packet":0,"request_path":[0,7],"request_receipt":[0,7],"request_receiv":0,"requested_at":[0,7],"requestexampl":0,"requestor":5,"requestreceipt":[4,7],"requir":[0,2,5,6,7,8,10,11,12],"require_shared_inst":7,"required_discovery_valu":[7,11],"rermin":[],"resend":7,"reserv":[0,6,7],"resid":5,"resili":[2,6,8,11,12],"resist":6,"resolut":[2,5,10],"resolv":[4,5,6,10,11],"resourc":[0,2,4,5,6,7,9,11],"resource_callback":7,"resource_sending_conclud":0,"resource_strategi":7,"respawn":5,"respawn_delai":5,"respawn_interv":5,"respect":[5,6,12],"respond":[0,6,7,11],"respond_to_prob":11,"respons":[4,5,7,10,12],"response_callback":[0,7],"response_gener":[0,7],"rest":[6,12],"restart":[5,11],"restartsec":11,"restor":[2,5],"restrict":[5,6,11],"result":[0,2,5,10,11],"ret":[4,10],"retain":[5,7],"retained_ratchet":7,"retibb":4,"reticulum":[0,5,6,7],"retipedia":4,"retransmiss":[6,10],"retransmit":[5,10],"retri":[0,7,10],"retriev":[7,11],"return":[0,5,7,11],"reveal":[2,7,10,12],"revers":11,"review":10,"revis":11,"rfe":11,"rich":8,"ridicul":10,"right":[2,5],"rington":8,"risc":4,"risk":10,"rmap":2,"rn":[0,2,3,4,7,10,11],"rncp":4,"rnid":[4,10],"rnmon":4,"rnode":[2,4,10,11,12],"rnodeconf":[3,4],"rnodef3b9":5,"rnodeinterfac":[2,3,5,11],"rnodemultiinterfac":5,"rnpath":[2,4,5],"rnphone":8,"rnprobe":[2,4],"rns_bin_dir":11,"rnsd":[2,4],"rnsh":[8,11],"rnspure":[2,10],"rnstatu":[2,4,5,10],"rnstransport":[5,11],"rnx":4,"roadmap":9,"roam":[5,6],"robot":10,"robust":[2,5],"role":6,"roll":5,"rom":11,"room":8,"root":10,"rotat":[7,10,11],"round":[0,7,11],"rout":[2,3,5,6,7,8,10,11,12],"router":[2,5,6,11],"rpc":11,"rpc_kei":11,"rprogress":0,"rrc":4,"rrcd":8,"rssi":[0,7,11],"rtsct":0,"rtt":[0,7,10],"rttstring":0,"rule":[2,4,5,6,11],"run":[0,2,3,5,6,7,8,10,11,12],"runtim":[0,10],"rust":2,"rx":[5,11],"rxb":0,"sa":8,"safe":10,"sai":[],"said":10,"same":[0,2,3,5,6,7,8,10,11],"satellit":6,"satisfi":10,"save":[7,10,11],"save_error":0,"saved_filenam":0,"saw":8,"scalabl":[11,12],"scale":[10,12],"scan":[2,5],"scenario":[2,5,10],"schedul":7,"scheme":[3,5],"scope":5,"scratch":3,"screen":0,"script":[2,3,5],"scrutini":10,"seamless":[5,10],"seamlessli":[5,6,8],"search":[4,7,8],"second":[0,5,6,7,8,10,11,12],"secreci":[5,7,8,10,12],"secret":[6,10],"section":[2,3,5,6,8,10,11],"secur":[2,4,6,8,10,11,12],"see":[0,2,5,6,7,10,11,12],"seek":10,"seen":[5,10],"segment":[0,2,5,6,7,10,11,12],"select":[0,2,5],"self":[0,2,10,12],"semtech":3,"send":[0,5,6,7,10,11],"send_stream_id":7,"sender":[0,2,6,10,11],"sens":6,"sensibl":[2,3,5],"sensor":[6,10],"sent":[0,2,6,7,10,11],"sentiment":10,"separ":[0,5,6,8,10,11],"sequenc":[0,7,10,12],"sequenti":12,"seri":3,"serial":[0,2,4,6,10,12],"serialinterfac":[3,5],"serv":[0,3,5,6,8,9,10,11],"serve_path":0,"server":[0,2,3,4,6,7,8,10,11],"server_buffer_readi":0,"server_callback":0,"server_client_connect":0,"server_destin":0,"server_fil":0,"server_ident":0,"server_link":0,"server_loop":0,"server_message_receiv":0,"server_packet_receiv":0,"servic":[2,4,5,6,8,10],"session":[2,8,10],"set":[0,2,3,5,6,7,8,10,11,12],"set_default_app_data":7,"set_delivery_callback":[0,7],"set_link_closed_callback":[0,7],"set_link_established_callback":[0,7],"set_packet_callback":[0,7],"set_proof_requested_callback":7,"set_proof_strategi":[0,7],"set_ratchet_interv":7,"set_remote_identified_callback":[0,7],"set_resource_callback":7,"set_resource_concluded_callback":[0,7],"set_resource_started_callback":[0,7],"set_resource_strategi":[0,7],"set_retained_ratchet":7,"set_timeout":[0,7],"set_timeout_callback":[0,7],"setup":[0,2,4,5,11],"sever":[2,6,7,11],"sf":11,"sh":5,"sha":[6,7,10],"sha256":[10,12],"shall":10,"shape":6,"share":[0,2,6,7,8,10,11],"share_inst":11,"shared_instance_port":11,"shared_instance_typ":[7,11],"shelf":[10,12],"shell":[2,4,11],"ship":10,"shop":0,"short":[3,5,10,11],"shorter":5,"shorthand":[5,11],"shot":2,"should":[0,2,5,6,7,10,11,12],"should_ingress_limit":0,"should_quit":0,"should_use_implicit_proof":7,"show":[2,11],"shown":[0,9],"side":[5,12],"sideband":[2,4,11],"sign":[5,6,7,10,11],"signal":[0,5,7,10],"signatur":[6,7,10,11,12],"signifi":10,"signific":6,"significantli":[5,7],"silent":11,"similar":[0,2,3,5,7,8,11,12],"simpl":[0,2,3,7,8,10,11,12],"simpler":[5,6,12],"simplest":[5,10],"simpli":[0,2,3,5,6,8,9,10,11],"simplic":10,"simplifi":0,"simplyequip":3,"simultan":[2,10],"sinc":[0,2,5,6,7,10],"singl":[0,2,5,6,7,10,11,12],"singular":10,"sit":2,"site":[5,6],"situat":[2,3,5,6,10,11],"size":[0,2,5,7,10,11],"size_str":0,"skip":0,"slate":[],"sleep":[0,2,11],"slice":0,"slightli":[0,2],"slottim":[5,11],"slow":[0,5,6,8,10],"slower":[5,7,10],"small":[0,2,5,6,7,10,12],"smaller":7,"smallest":2,"snippet":11,"snr":[0,7,11],"so":[0,2,3,5,6,7,8,9,10,11,12],"social":2,"socket":[5,11,12],"softwar":[2,3,5,8,10],"sole":5,"solid":9,"solut":[10,11],"solv":10,"some":[0,2,3,5,6,7,8,10,11],"someon":[2,5,11],"someth":[6,10],"somethign":0,"sometim":[3,5,8],"somewhat":2,"soon":7,"sort":[5,10,11],"soundmodem":5,"sourc":[0,2,3,4,6,7,10,12],"sovereign":[2,10],"sovereignti":12,"space":[0,2,3,6,10,12],"spam":[2,5,10,11],"spammi":11,"span":[5,6,10],"spawn":5,"spe":5,"speak":9,"spec":10,"special":[8,10,11],"specif":[0,3,4,5,6,7,11],"specifi":[0,2,3,5,6,7,10,11],"spectrum":[5,10],"speed":[0,5,7,10,11],"spirit":8,"split":0,"sponsor":9,"spread":[5,11],"spreadingfactor":5,"squelch":5,"ssh":8,"ssid":5,"stabil":6,"stabl":[2,5,6,10,12],"stack":[0,2,6,7,8,10,11,12],"stage":10,"stai":[0,10,11],"stale":[6,7],"stale_grac":7,"stale_tim":7,"stamp":[5,7,11],"standalon":[4,8],"standard":[3,5,8,10,11],"start":[0,3,4,5,6,7,8,10,11],"startup":[0,2,11],"stat":[7,11],"state":[0,6],"static":[2,5,7],"staticmethod":0,"station":5,"stationari":[6,11],"statist":[0,5,7,9],"statu":[0,2,4,5,7,8,10,11],"stderr":11,"stdin":[5,11],"stdio":12,"stdout":[0,5,11],"stem":9,"step":[0,2,3],"still":[0,2,5,6,8,10,11],"stock":0,"stop":[7,12],"stopbit":[0,5,11],"storag":[2,5,8,10,11],"store":[0,7,8,10,11],"store_tru":0,"str":0,"straightforward":5,"strateg":6,"strategi":[4,5,7],"stream":[0,7,8,10],"stream_id":[0,7],"strength":[7,12],"strictli":[5,10],"string":[0,7],"stringmessag":0,"strong":[2,10],"stronger":2,"strongli":2,"struct":0,"structur":[0,6,7,10,12],"style":5,"sub":[0,5],"subclass":[0,7],"subinterfac":5,"subject":[2,11,12],"subnet":[2,6],"subscrib":[2,11],"subsequ":[0,10],"subset":5,"subsid":5,"substanti":[],"succe":2,"succeed":[0,7],"succesfulli":6,"success":[2,5],"successful":7,"successfulli":[0,7,10],"sudo":[2,11],"suffer":6,"suffic":10,"suffici":[2,5,10,11],"suffix":0,"suit":[2,3,8,10,11],"suitabl":[0,2,5,6,10,11,12],"super":0,"supersed":5,"suppli":[0,5,7,10,12],"supplier":2,"support":[0,2,4,5,6,7,8,10,11,12],"sure":[0,2,3,11],"surveil":10,"surviv":[2,10,11],"switch":[3,5,6,10,11],"sx1262":3,"sx1268":3,"sx1276":3,"sx1278":3,"sx1280":3,"sy":0,"symlink":11,"symmetr":[7,10],"synchron":8,"system":[0,2,3,4,5,6,7,8,9,10,12],"systemctl":11,"systemd":11,"t":[0,2,5,6,7,10,11],"tabl":[2,5,6,10,11],"tablet":2,"tackl":8,"tag":7,"tail":5,"tailor":10,"take":[0,2,5,8,10,11,12],"taken":[0,10],"talk":8,"tangerin":0,"tap":3,"target":[0,5,8,11],"target_hash":7,"target_host":5,"target_port":[5,11],"task":11,"tcp":[2,3,4,6,10,11,12],"tcpclientinterfac":[2,3,5],"tcpinterfac":11,"tcpserverinterfac":[2,5],"tdata":0,"teach":11,"teahous":9,"teardown":[0,7],"teardown_reason":0,"technologi":[2,6],"teffect":0,"telemetri":[8,9],"telephon":4,"telephoni":8,"tell":[0,2,5,6],"temperatur":10,"temporari":[2,5,11],"temporarili":[5,6],"ten":10,"tend":5,"term":[2,5,6,10],"termin":[0,2,7,8],"terminologi":[6,10],"termux":2,"test":[2,8,10,11],"testnet":11,"text":[0,8,10],"tfile":0,"tgz":11,"than":[0,2,5,6,7,8,9,10,11,12],"thei":[0,2,5,6,7,8,10,11],"them":[0,2,3,5,6,8,9,10,11,12],"themselv":[5,6],"thereaft":10,"therefor":[2,10,12],"thi":[0,2,3,4,5,6,7,8,9,10,11,12],"thing":[0,2,6,8],"think":[2,3,6,9,10],"those":[2,6,10,11],"though":[2,5,6,10],"thousand":[2,5,10,11],"thread":0,"threat":11,"three":[2,10],"threshold":5,"throough":5,"throttl":[5,6],"through":[0,2,3,5,6,7,8,10,11,12],"throughout":[6,10],"throughput":[7,8,10,12],"thrown":7,"thu":[6,7,10],"ti":[0,6,10],"time":[0,2,3,5,6,7,8,9,10,11],"time_since_last":0,"timeout":[0,7,11],"timeoutarg":0,"timestamp":[0,10],"timestr":0,"tion":5,"tnc":[3,5,7,8,11,12],"to_fil":7,"todai":10,"togeth":[3,6,10,11],"token":[7,10,12],"toler":5,"too":[0,6],"tool":[2,3,6,8,10,11,12],"toolkit":[2,6],"toolsl":[],"top":[8,10],"topic":[2,10],"topographi":[2,6,10],"topologi":[2,5,6,10,12],"torn":[7,11],"total":[7,10,11,12],"total_s":0,"toward":[0,5,10],"track":7,"track_phy_stat":7,"trade":[6,10],"tradit":[6,10],"traffic":[0,2,5,6,7,10,11],"transceiv":[2,3,5,8,10,12],"transfer":[0,7,10,11,12],"transfer_s":0,"transform":12,"transit":[],"translat":6,"transmiss":[2,5,7,10],"transmit":[0,5,10],"transpar":[3,5,6,10,11],"transport":[0,2,4,5,7,8,11,12],"transport_en":7,"transport_ident":11,"travers":[2,7,10],"treat":[6,10],"tremend":6,"tri":0,"trip":[0,7,11],"trivial":[10,12],"true":[0,2,5,7,11],"truli":[3,10],"truncat":[7,10,11],"truncated_hash":7,"truncated_hashlength":[0,7],"trust":[2,5,6,10,11],"trustless":[4,10,12],"trustworthi":[6,11],"try":[0,4,5,6,7,8],"ttime":0,"ttransfer":0,"ttyacm0":5,"ttyusb0":[0,5,11],"ttyusb1":5,"ttyusb2":5,"tun":[3,5],"tun0":5,"tune":5,"tunnel":[2,5,6,10,12],"tupl":7,"turn":[0,5,11],"turnaround":5,"tutori":2,"two":[0,3,5,6,7,10],"tx":[5,11],"txb":0,"txp":11,"txpower":5,"txt":11,"txtail":[5,11],"type":[0,2,4,5,6,7,11],"typeerror":7,"typic":[5,6,10],"u":[10,11],"ubiqu":3,"ubuntu":[4,11],"uci":2,"udp":[4,6,10,11,12],"udpinterfac":5,"uhf":[11,12],"ui":8,"ultim":[2,10],"umsgpack":0,"unblackhol":11,"unblock":11,"uncencrypt":0,"uncensor":[],"unchang":6,"uncoordin":2,"under":[7,9,10,11,12],"underli":[0,5,6,7,10,12],"understand":[2,4,5,6,7,11],"underwai":2,"unencrypt":[0,7,10],"unequivoc":10,"unexplor":6,"unforg":[6,12],"unfortun":2,"unidentifi":0,"unidirect":0,"unifi":[6,10],"uninterest":0,"uniqu":[0,5,6,7,8,10,11,12],"unit":[0,2,7,11],"unknown":[0,5,6,7,10,11],"unless":[0,2,5,6,7,10],"unlicens":10,"unlik":10,"unlock":11,"unorganis":6,"unpack":[0,7],"unpackb":0,"unplug":11,"unrecover":[0,11],"unreli":5,"unset":10,"unsupport":7,"until":[0,2,5,7],"untrust":11,"unus":11,"unwant":[10,11],"up":[0,2,3,5,6,7,8,10,11,12],"updat":[0,2,7,10,11],"upgrad":[2,7,10],"upkeep":5,"upon":[0,5,10],"upset":0,"urandom":[10,12],"uri":8,"url":11,"us":[0,3,4,5,6,7],"usabl":[5,10],"usag":[4,5,7,8,9,11],"usb":[3,10,11],"useabl":10,"user":[0,2,5,6,8,10,11,12],"user_input":0,"userland":12,"usernameher":11,"usr":[5,11],"usual":[2,5,6],"utf":0,"util":[0,3,4,5,10],"utilis":[0,2,5,7,10,11,12],"ux":8,"v":[4,11],"valid":[0,2,5,6,7,10,11],"valu":[0,2,5,7,10,11],"valuabl":[3,9],"valueerror":[0,7],"vari":[2,5,10,11],"variabl":[0,2,7],"varieti":[5,8,10,11,12],"variou":[0,2,5,6,8,10,11,12],"vast":[2,10],"vastli":6,"ve":6,"vehicl":5,"vendor":[0,3,12],"verbos":[7,11],"veri":[2,3,5,6,7,8,9,10,11,12],"verif":[6,7,8,10,11],"verifi":[0,2,5,6,7,10,11,12],"versa":12,"version":[0,2,7,10,11],"vhf":[10,12],"via":[2,3,5,6,8,9,10,11,12],"viabl":6,"vice":12,"view":[2,5,9,10,11],"violat":5,"virtual":[2,3,5,6,10,11,12],"visibl":[0,5],"voic":[8,9],"voicemail":8,"volunt":2,"voluntari":2,"vpn":6,"vport":5,"vulner":6,"vvv":2,"w":11,"wa":[0,3,5,6,7,10,11,12],"wai":[0,4,5,6,7,8,10,11],"wait":[0,2,5,8,10,11],"want":[0,2,5,6,8,9,10,11],"wantedbi":11,"warn":11,"warrant":12,"wast":[5,6,9],"wave":3,"wb":0,"we":[0,2,3,5,6,9,10],"weaken":10,"web":[2,8],"websit":[2,5],"weight":11,"welcom":[],"well":[3,5,6,7,8,9,10,11,12],"went":0,"were":[0,8],"what":[0,2,4,5,6,7,10,11],"whatev":[6,7,10],"wheel":2,"when":[0,2,3,5,6,7,8,10,11],"whenev":[0,7,10],"where":[2,3,4,5,6,7,8,10,11],"whereupon":10,"whether":[0,2,5,6,7,10],"which":[0,2,5,6,7,8,10,11],"while":[0,2,3,5,6,7,8,10,11,12],"whitelist":10,"whl":2,"who":[2,5,6,10,11],"whole":11,"wide":[2,3,5,6,8,10,11,12],"wider":[2,5,6,10,11],"wifi":[2,4,5,6,8,10,11,12],"wiki":[],"wikipedia":8,"wildcard":0,"willing":11,"window":[4,5,8],"wipe":11,"wire":[3,4,5,8,12],"wireless":[3,6],"wirelessli":5,"wish":[0,5,10,11],"within":[0,2,5,6,7,10],"without":[0,2,3,5,6,8,10,11,12],"wlan0":5,"wolf":3,"won":0,"word":2,"work":[2,3,5,6,8,10,11,12],"workabl":6,"world":[2,3,5,6,8,11,12],"worri":6,"worth":2,"would":[5,7,8,10],"write":[0,2,3,5,7,8,10,11],"write_timeout":0,"writer":[0,7],"written":[0,10,12],"wrong":[0,2,5],"wrote":[0,5],"x":[7,10,11],"x25519":[10,12],"xenon":0,"xonxoff":0,"y":0,"ye":[2,5,10,11],"year":10,"yet":[0,5,10,12],"yggdrasil":5,"yi":0,"you":[0,2,3,4,5,6,7,8,9,10,11,12],"your":[0,3,4,5,6,7,9,10,12],"yourself":[2,10,11,12],"z":0,"zero":[5,7,8,12],"zi":0,"zim":8,"zone":10,"zshrc":2},"titles":["Code Examples","An Explanation of Reticulum for Human Beings","Getting Started Fast","Communications Hardware","Reticulum Network Stack Manual","Configuring Interfaces","Building Networks","API Reference","Programs Using Reticulum","Support Reticulum","Understanding Reticulum","Using Reticulum on Your System","What is Reticulum?"],"titleterms":{"0":3,"1":3,"25":5,"Beings":1,"Not":6,"Of":4,"The":[10,11],"With":2,"access":10,"ad":2,"address":6,"an":1,"android":2,"announc":[0,5,10],"api":7,"arm64":2,"auto":5,"autom":11,"ax":5,"backbon":[2,5],"base":[2,3],"basic":10,"beam":3,"blackhol":11,"board":3,"bookworm":2,"bootstrap":2,"broadcast":0,"buffer":0,"build":[2,6],"can":12,"caveat":12,"channel":0,"chat":8,"client":[5,8],"code":[0,10],"columba":8,"combin":3,"common":5,"commun":3,"concept":6,"conceptu":10,"configur":[5,11],"connect":[2,5,6,8],"consider":[5,6],"content":4,"contribut":2,"control":5,"creat":[2,3,10],"cryptograph":10,"current":[10,12],"custom":[0,2,5],"data":11,"debian":2,"deck":3,"depend":2,"destin":[5,6,10],"detail":10,"develop":2,"devic":[3,12],"discov":11,"discover":5,"discoveri":5,"distribut":2,"doe":12,"donat":9,"echo":[0,3],"emptor":12,"enabl":5,"entrypoint":2,"establish":10,"ethernet":3,"exampl":[0,5],"explan":1,"fast":2,"feedback":9,"filesync":8,"filetransf":0,"find":2,"fix":11,"format":10,"function":10,"further":10,"futur":10,"get":[2,10],"global":2,"goal":10,"hardwar":3,"health":2,"heltec":3,"heterogen":6,"host":2,"human":1,"i":12,"i2p":5,"ident":10,"identif":0,"implic":10,"improv":11,"includ":[2,11],"indic":4,"infrastructur":2,"instal":[2,3],"instanc":[2,6],"interact":8,"interfac":[0,2,5,8,10,11,12],"internet":2,"introduct":10,"introductori":6,"issu":2,"j":8,"kei":10,"kiss":5,"lilygo":3,"limit":5,"line":3,"link":[0,10],"list":11,"listen":5,"local":11,"lora":5,"lora32":3,"lunar":2,"lxmf":8,"lxmfy":8,"lxst":8,"maco":2,"manag":11,"manual":4,"mechan":10,"meshchat":8,"meshchatx":8,"micron":8,"minim":0,"mix":2,"mode":5,"modem":3,"modul":8,"motiv":10,"multi":5,"name":[10,11],"network":[2,4,6,8,10],"new":5,"node":[6,8,10],"nomad":8,"note":2,"offer":12,"opencom":3,"openwrt":2,"option":5,"over":2,"overview":[6,10],"packet":[3,10],"page":8,"paramet":5,"parser":8,"person":2,"phone":8,"pi":2,"pipe":5,"platform":2,"port":11,"primit":10,"prioritis":10,"program":[2,8,11],"propag":10,"protocol":[8,10],"provid":9,"public":[2,10],"publish":11,"pure":2,"python":2,"radio":[2,3],"rak4631":3,"raspberri":2,"rate":5,"rbrowser":8,"reach":10,"refer":[7,10],"relai":8,"remot":[5,8,11],"request":0,"resolv":2,"resourc":[8,10],"respons":[0,2],"ret":2,"retibb":8,"reticulum":[1,2,3,4,8,9,10,11,12],"retipedia":8,"risc":2,"rn":8,"rncp":11,"rnid":11,"rnmon":8,"rnode":[3,5],"rnodeconf":11,"rnpath":11,"rnprobe":11,"rnsd":11,"rnstatu":11,"rnx":11,"rrc":8,"rule":10,"secur":5,"serial":[3,5,11],"server":5,"servic":11,"setup":10,"shell":8,"sideband":8,"sourc":11,"specif":[2,10],"stack":4,"standalon":2,"start":2,"statu":12,"strategi":2,"support":[3,9],"suprem":3,"system":11,"systemwid":11,"t":3,"t114":3,"t3s3":3,"tabl":4,"tcp":5,"telephon":8,"testnet":[],"transport":[6,10],"trustless":6,"try":2,"type":[3,10,12],"ubuntu":2,"udp":5,"understand":10,"unsign":3,"us":[2,8,10,11,12],"usag":[3,10],"userspac":11,"util":[2,8,11],"v":2,"v1":3,"v2":3,"v3":3,"v4":3,"wai":2,"what":12,"where":12,"wifi":3,"window":2,"wire":10,"x":3,"xl":3,"your":[2,11]}})
\ No newline at end of file
diff --git a/docs/manual/software.html b/docs/manual/software.html
new file mode 100644
index 0000000..1441e0d
--- /dev/null
+++ b/docs/manual/software.html
@@ -0,0 +1,541 @@
+
+
+
+
+
+
+
+
+
+ Programs Using Reticulum - Reticulum Network Stack 1.1.1 documentation
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Contents
+
+
+
+
+
+
+ Expand
+
+
+
+
+
+ Light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Dark mode
+
+
+
+
+
+
+ Auto light/dark, in light mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Auto light/dark, in dark mode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Skip to content
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Back to top
+
+
+
+
+Programs Using Reticulum
+This chapter provides a non-exhaustive list of notable programs, systems and application-layer
+protocols that have been built using Reticulum.
+These programs will let you get a feel for how Reticulum works. Most of them have been designed
+to run well even over slow networks based on LoRa or packet radio, but all can also be used over fast
+links, such as local WiFi, wired Ethernet, the Internet, or any combination.
+As such, it is easy to get started experimenting, without having to set up any radio
+transceivers or infrastructure just to try it out. Launching the programs on separate
+devices connected to the same WiFi network is enough to get started, and physical
+radio interfaces can then be added later.
+
+Programs & Utilities
+Many different applications using Reticulum already exist, serving a wide variety of purposes
+from day-to-day communication and information sharing to systems administration and tackling
+advanced networking and communications challenges.
+Development of Reticulum-based applications and systems is ongoing, so consider this list
+a non-exhaustive starting point of some of the options available. With a bit of searching,
+primarily over Reticulum itself, you will find many more interesting things.
+
+Remote Shell
+The rnsh program lets you establish fully interactive
+remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
+remote system, and is similar to how ssh works. The rnsh program is very efficient, and
+can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
+such as LoRa or packet radio.
+In addition to the default, fully interactive terminal mode,
+for extremely limited links, rnsh offers line-interactive mode, allowing you to interact
+with remote systems, even when link throughput is counted in a few hundreds of bits per second.
+
+
+Nomad Network
+The terminal-based program Nomad Network
+provides a complete encrypted communications suite built with Reticulum. It features
+encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
+and has a built-in text-browser and page server with support for dynamically rendered pages,
+user authentication and more.
+
+
+Nomad Network is a user-facing client
+for the messaging and information-sharing protocol LXMF.
+
+
+RNS Page Node
+RNS Page Node is a simple way to serve pages and files to any other Nomad Network compatible client. Drop-in replacement for NomadNet nodes that primarily serve pages and files.
+
+
+Retipedia
+You can host the entirity of Wikipedia (or any .zim ) file to other Nomad Network clients using Retipedia .
+
+
+Sideband
+If you would rather use an LXMF client with a graphical user interface, you can take
+a look at Sideband , which is available for Android,
+Linux, macOS and Windows. Sideband is an advanced LXMF and LXST client, and a multi-purpose Reticulum
+utility, with features and functionality targeted at advanced users.
+
+
+Sideband allows you to communicate with other people or LXMF-compatible
+systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
+Paper Messages, or anything else Reticulum supports.
+It also interoperates with all other LXMF clients, and provides advanced features such as voice messaging,
+real-time voice calls, file attachments, private telemetry sharing, and a full
+plugin system for expandability.
+
+
+MeshChatX
+A Reticulum MeshChat fork from the future , with the goal of providing everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application. This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.
+
+
+Features include full LXST support, custom voicemail, phonebook, contact sharing, and ringtone support, multi-identity handling, modern UI/UX, offline documentation, expanded tools, page archiving, integrated maps and improved application security.
+
+
+MeshChat
+The Reticulum MeshChat application
+is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
+page browser and other interesting functionality.
+
+
+Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
+any other LXMF client.
+
+
+Columba
+Columba is a simple and familiar LXMF
+messaging app Android, built with a native Android interface and Material Design 3.
+
+
+While still in early and very active development, it is of course also compatible
+with all other LXMF clients, and allows you to message seamlessly with anyone else
+using LXMF.
+
+
+Reticulum Relay Chat
+Reticulum Relay Chat is a live chat system built on top of the Reticulum Network Stack. It exists to let people talk to each other in real time over Reticulum without dragging in message databases, synchronization engines, or architectural commitments they did not ask for.
+The rrcd program provides a functional, reference RRC hub-server daemon implementation. RRC user clients include rrc-gui and rrc-web .
+RRC is closer in spirit to IRC than to modern “everything platforms.” You connect, you join a room, you talk, and then you leave. If you were present, you saw the conversation. If you were not, the conversation did not wait for you. This is not an accident. This is the entire design.
+
+
+RetiBBS
+RetiBBS is a bulletin board system implementation for Reticulum networks.
+
+
+RetiBBS allows users to communicate through message boards in a secure manner.
+
+
+RBrowser
+The rBrowser program is a cross-platoform, standalone, web-based browser for exploring NomadNetwork Nodes over Reticulum Network. It automatically discovers NomadNet nodes through network announces and provides a user-friendly interface for browsing distributed content with Micron markup support.
+
+
+Includes useful features like automatic listening for announce, adding nodes to favorites, browsing and rendering any kind of NomadNet links, downloading files from remote nodes, a unique local NomadNet Search Engine and more.
+
+
+Reticulum Network Telephone
+The rnphone program, included as part of the LXST package is a command-line Reticulum telephone utility and daemon, that allows building physical, hardware telephones for LXST and Reticulum, as well as simply performing calls via the command line.
+
+
+It supports interfacing directly with hardware peripherals such as GPIO keypads and LCD displays, providing a modular system for building secure hardware telephones.
+
+
+LXST Phone
+The LXST Phone program is a cross-platform desktop application for performing LXST voice calls over Reticulum.
+
+
+It supports various advanced features such as SAS verification, peer blocking, rate limiting, encrypted call history storage and contact management.
+
+
+LXMFy
+LXMFy is a comprehensive and advanced bot creation framework for LXMF, that allows building any kind of automation or bot system running over LXMF and Reticulum. Bot implementations exist for Home Assistant control, LLM integrations, and various other purposes.
+
+
+LXMF Interactive Client
+LXMF Interactive Client is a feature-rich, terminal-based LXMF messaging client with many advanced features and an extensible plugin architecture.
+
+
+RNS FileSync
+The RNS FileSync program enables automatic file synchronization between devices without requiring central servers, internet connectivity, or cloud services. It works over any network medium supported by Reticulum, including radio, LoRa, WiFi, or the internet, making it ideal for off-grid, privacy-focused, and resilient file sharing.
+
+
+Micron Parser JS
+Micron Parser JS is the JavaScript-based parser for the Micron markup language, that most web-based Nomad Network browsers use. If you want to make utilities or tools that display Micron pages, this library is essential.
+
+
+RNMon
+RNMon is a monitoring daemon designed to monitor the status of multiple RNS applications and push the metrics to an InfluxDB instance over the influx line protocol.
+
+
+
+Protocols
+A number of standard protocols have emerged through real-world usage and testing in the Reticulum community. While you may sometimes want to use completely custom protocols and implementations when writing Reticulum-based software, using these protocols provides application developers with an easy way to implement advanced functionality quickly and effortlessly. Using them also ensures compatibility and interoperability between many different client applications, creating an open communications ecosystem where users are free to choose the applications that suit their needs, while remaining connected to everyone else.
+
+LXMF
+LXMF is a simple and flexible messaging format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It offers zero-conf message routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports.
+LXMF is efficient enough that it can deliver messages over extremely low-bandwidth systems such as packet radio or LoRa. Encrypted LXMF messages can also be encoded as QR-codes or text-based URIs, allowing completely analog paper message transport.
+Using Propagation Nodes, LXMF also offer a way to store and forward messages to users or endpoints that are not directly reachable at the time of message emission.
+
+
+LXST
+LXST is a simple and flexible real-time streaming format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It is built on top of Reticulum and offers zero-conf stream routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports. It currently powers real-time voice and telephony applications over Reticulum.
+
+
+RRC
+The Reticulum Relay Chat protocol, is a live chat system built on top of the Reticulum Network Stack. It exists to provide near real-time group communication without dragging in message history databases, federation machinery, or architectural guilt.
+RRC is intentionally simple. It does not pretend to be email, a mailbox, or a distributed archive. It behaves more like a conversation in a room. If you were there, you heard it. If you were not, you did not. That is not a bug, that is the point.
+
+
+
+Interface Modules & Connectivity Resources
+This section provides a list of various community-provided interface modules, guides and resources for creating Reticulum networks over special or challenging mediums.
+
+
+
+
+
+
+
+
+
+
+
+
+ Copyright © 2025, Mark Qvist
+
+ Generated with
Sphinx and
+
Furo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/source/gettingstartedfast.rst b/docs/source/gettingstartedfast.rst
index 28caf4b..04d40b8 100644
--- a/docs/source/gettingstartedfast.rst
+++ b/docs/source/gettingstartedfast.rst
@@ -66,106 +66,10 @@ compiled packages available.
Try Using a Reticulum-based Program
=============================================
-If you simply want to try using a program built with Reticulum, a few different
-programs exist that allow basic communication and a range of other useful functions,
+If you simply want to try using a program built with Reticulum, a :ref:`range of different
+programs ` exist that allow basic communication and a various other useful functions,
even over extremely low-bandwidth Reticulum networks.
-These programs will let you get a feel for how Reticulum works. They have been designed
-to run well over networks based on LoRa or packet radio, but can also be used over fast
-links, such as local WiFi, wired Ethernet, the Internet, or any combination.
-
-As such, it is easy to get started experimenting, without having to set up any radio
-transceivers or infrastructure just to try it out. Launching the programs on separate
-devices connected to the same WiFi network is enough to get started, and physical
-radio interfaces can then be added later.
-
-Remote Shell
-^^^^^^^^^^^^
-
-The `rnsh `_ program lets you establish fully interactive
-remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
-remote system, and is similar to how ``ssh`` works. The ``rnsh`` is very efficient, and
-can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
-such as LoRa or packet radio.
-
-Nomad Network
-^^^^^^^^^^^^^
-
-The terminal-based program `Nomad Network `_
-provides a complete encrypted communications suite built with Reticulum. It features
-encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
-and has a built-in text-browser and page server with support for dynamically rendered pages,
-user authentication and more.
-
-.. image:: screenshots/nomadnet_3.png
- :target: _images/nomadnet_3.png
-
-`Nomad Network `_ is a user-facing client
-for the messaging and information-sharing protocol
-`LXMF `_, another project built with Reticulum.
-
-You can install Nomad Network via pip:
-
-.. code::
-
- # Install ...
- pip install nomadnet
-
- # ... and run
- nomadnet
-
-.. note::
- If this is the very first time you use ``pip`` to install a program
- on your system, you might need to reboot your system for your program to become
- available. If you get a "command not found" error or similar when running the
- program, reboot your system and try again. In some cases, you may even need to
- manually add the ``pip`` install path to your ``PATH`` environment variable.
-
-Sideband
-^^^^^^^^
-
-If you would rather use a program with a graphical user interface, you can take
-a look at `Sideband `_, which is available for Android,
-Linux, macOS and Windows.
-
-.. only:: html
-
- .. image:: screenshots/sideband_devices.webp
- :align: center
- :target: _images/sideband_devices.webp
-
-.. only:: latex
-
- .. image:: screenshots/sideband_devices.png
- :align: center
- :target: _images/sideband_devices.png
-
-Sideband allows you to communicate with other people or LXMF-compatible
-systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
-Paper Messages, or anything else Reticulum supports. It also interoperates with
-the Nomad Network program.
-
-MeshChat
-^^^^^^^^
-
-The `Reticulum MeshChat `_ application
-is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
-page browser and other interesting functionality.
-
-.. only:: html
-
- .. image:: screenshots/meshchat_1.webp
- :align: center
- :target: _images/meshchat_1.webp
-
-.. only:: latex
-
- .. image:: screenshots/meshchat_1.png
- :align: center
- :target: _images/meshchat_1.png
-
-Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
-any other LXMF client.
Using the Included Utilities
=============================================
@@ -214,45 +118,11 @@ network just using the default (:ref:`AutoInterface`) configura
Possibly, the examples in the config file are enough to get you started. If
you want more information, you can read the :ref:`Building Networks`
-and :ref:`Interfaces` chapters of this manual.
+and :ref:`Interfaces` chapters of this manual, but most importantly,
+start with reading the next section, :ref:`Bootstrapping Connectivity`,
+as this provides the most essential understanding of how to ensure reliable
+connectivity with a minimum of maintenance.
-Connecting Reticulum Instances Over the Internet
-================================================
-Reticulum currently offers three interfaces suitable for connecting instances over the Internet: :ref:`Backbone`, :ref:`TCP`
-and :ref:`I2P`. Each interface offers a different set of features, and Reticulum
-users should carefully choose the interface which best suites their needs.
-
-The ``TCPServerInterface`` allows users to host an instance accessible over TCP/IP. This
-method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
-however it also leaks more data about the server host.
-
-The ``BackboneInterface`` is a very fast and efficient interface type available on POSIX operating
-systems, designed to handle many hundreds of connections simultaneously with low memory, processing
-and I/O overhead. It is fully compatible with the TCP-based interface types.
-
-TCP connections reveal the IP address of both your instance and the server to anyone who can
-inspect the connection. Someone could use this information to determine your location or identity. Adversaries
-inspecting your packets may be able to record packet metadata like time of transmission and packet size.
-Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
-packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
-Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
-which most Internet connections don't offer anymore.
-
-The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
-(I2P) `_. To use this interface, users must also run an I2P daemon in
-parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd `_.
-
-By default, I2P will encrypt and mix all traffic sent over the Internet, and
-hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
-will also relay other I2P user's encrypted packets, which will use extra
-bandwidth and compute power, but also makes timing attacks and other forms of
-deep-packet-inspection much more difficult.
-
-I2P also allows users to host globally available Reticulum instances from non-public IP's and behind firewalls and NAT.
-
-In general it is recommended to use an I2P node if you want to host a publicly accessible
-instance, while preserving anonymity. If you care more about performance, and a slightly
-easier setup, use TCP.
.. _bootstrapping-connectivity:
@@ -271,17 +141,20 @@ There is no "right" or "wrong" way to build a Reticulum network, and you don't n
Finding Your Way
^^^^^^^^^^^^^^^^
-When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with. This is the process of **bootstrapping**.
+When you first start using Reticulum, you need a way to obtain connectivity with the peers you want to communicate with; the process of *bootstrapping connectivity*.
-A common mistake in modern networking is the reliance on a few centralized, hard-coded entrypoints. If every user simply connects to the same list of public IP addresses found on a website, the network becomes brittle, centralized, and ultimately fails to deliver on the promise of decentralization.
+.. important::
+
+ A common mistake in modern networking is the reliance on a few centralized, hard-coded entrypoints. If every user simply connects to the same list of public IP addresses found on a website, the network becomes brittle, centralized, and ultimately fails to deliver on the promise of decentralization.
-Reticulum encourages the approach of *organic growth*. Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to *discover* better, more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
+Reticulum encourages the approach of *organic growth*. Instead of relying on permanent static connections to distant servers, you can use temporary bootstrap connections to continously *discover* more relevant or local infrastructure. Once discovered, your system can automatically form stronger, more direct links to these peers, and discard the temporary bootstrap links. This results in a web of connections that are geographically relevant, resilient and efficient.
It *is* possible to simply add a few public entrypoints to the ``[interfaces]`` section of your Reticulum configuration and be connected, but a better option is to enable :ref:`interface discovery` and either manually select relevant, local interfaces, or enable discovered interface auto-connection.
A relevant option in this context is the :ref:`bootstrap only` interface option. This is an automated tool for better distributing connectivity. By enabling interface discovery and auto-connection, and marking an interface as ``bootstrap_only``, you tell Reticulum to use that interface primarliy to find connectivity options, and then disconnect it once sufficient entrypoints have been discovered. This helps create a network topology that favors locality and resilience over the simple centralization caused by using only a few static entrypoints.
-A good place to find interface definitions for bootstrapping connectivity is `rmap.world `_.
+Good places to find interface definitions for bootstrapping connectivity are websites like
+`directory.rns.recipes `_ and `rmap.world `_.
Building Personal Infrastructure
@@ -326,55 +199,27 @@ If you have the means to host a stable node with a public IP address, consider b
For guidelines on how to properly configure and secure a public gateway, refer to the :ref:`Hosting Public Entrypoints` section.
-Connect to the Public Testnet
-=============================
+Connect to the Distributed Backbone
+===================================
-An experimental public testnet has been made accessible by volunteers in the community. You
-can find interface definitions for adding to your ``.reticulum/config`` file on the
-`Reticulum Website `_, or the
-`Community Wiki `_.
-
-As development of Reticulum has transitioned away from the public Internet, and is now happening exclusively over Reticulum itself, the lists on the `Reticulum Website `_ and the
-`Community Wiki `_ are no longer actively maintained, and any up-to-date connectivity information will have to be found elsewhere.
-
-For a while, these resources will likely still be a usable way to find bootstrap connections, that will allow you to discover other entrypoints to connect to, but it is highly recommended to also check community run projects like `rmap.world `_.
-
-You can connect your devices or instances to one or more of these to gain access to any
-Reticulum networks they are physically connected to. Simply add one or more interface
-snippets to your config file in the ``[interface]`` section, like in the example below:
-
-.. code:: ini
-
- # TCP/IP interface to the RNS Amsterdam Hub
- [[RNS Testnet Amsterdam]]
- type = TCPClientInterface
- enabled = yes
- target_host = amsterdam.connect.reticulum.network
- target_port = 4965
+A global, distributed backbone of Reticulum Transport Nodes is being run by volunteers from around the world. This network constitutes a heterogenous collection of both public and private nodes that form an uncoordinated, voluntary inter-networking backbone that currently provides global transport and internetworking capabilities for Reticulum.
+As a good starting point, you can find interface definitions for connecting your own networks to this backbone on websites such as `directory.rns.recipes `_ and `rmap.world `_.
.. tip::
- Don't rely on a single connection to a testnet entrypoint for everyday use. The testnet is often used for development and failure testing scenarios. Instead, read the :ref:`Bootstrapping Connectivity` section.
+ Don't rely on just a single connection to a the distributed backbone for everyday use. It is much better to have several redundant connections configured, and enable the interface discovery options, so your nodes can continously discover peering opportunities as the network evolves. Refer to the :ref:`Bootstrapping Connectivity` section to understand the options.
-As the amount of global Reticulum nodes and entrypoints have grown to a substantial quantity, the public Amsterdam Testnet entrypoint is slated for de-commisioning in the first quarter of 2026. If your own instances rely on this entrypoint for connectivity, it is high time to start configuring alternatives. Read the :ref:`Bootstrapping Connectivity` section for pointers.
-.. warning::
- It probably goes without saying, but *don't use the testnet entry-points as
- hardcoded or default interfaces in any applications you ship to users*. When
- shipping applications, the best practice is to provide your own default
- connectivity solutions, if needed and applicable, or in most cases, simply
- leave it up to the user which networks to connect to, and how.
.. _hosting-entrypoints:
Hosting Public Entrypoints
==========================
-If you want to host a public (or private) entry-point to a Reticulum network over the
-Internet, this section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to :ref:`make it discoverable over Reticulum`.
+If you want to help build a strong global interconnection backbone, you can host a public (or private) entry-point to a Reticulum network over the
+Internet. This section offers some helpful pointers. Once you have set up your public entrypoint, it is a great idea to :ref:`make it discoverable over Reticulum`.
-You will need a machine, physical or
-virtual with a public IP address, that can be reached by other devices on the Internet.
+You will need a machine, physical or virtual with a public IP address, that can be reached by other devices on the Internet.
The most efficient and performant way to host a connectable entry-point supporting many
users is to use the ``BackboneInterface``. This interface type is fully compatible with
@@ -420,6 +265,45 @@ If you are hosting an entry-point on an operating system that does not support
``BackboneInterface``, you can use ``TCPServerInterface`` instead, although it will
not be as performant.
+
+Connecting Reticulum Instances Over the Internet
+================================================
+Reticulum currently offers three interfaces suitable for connecting instances over the Internet: :ref:`Backbone`, :ref:`TCP`
+and :ref:`I2P`. Each interface offers a different set of features, and Reticulum
+users should carefully choose the interface which best suites their needs.
+
+The ``TCPServerInterface`` allows users to host an instance accessible over TCP/IP. This
+method is generally faster, lower latency, and more energy efficient than using ``I2PInterface``,
+however it also leaks more data about the server host.
+
+The ``BackboneInterface`` is a very fast and efficient interface type available on POSIX operating
+systems, designed to handle many hundreds of connections simultaneously with low memory, processing
+and I/O overhead. It is fully compatible with the TCP-based interface types.
+
+TCP connections reveal the IP address of both your instance and the server to anyone who can
+inspect the connection. Someone could use this information to determine your location or identity. Adversaries
+inspecting your packets may be able to record packet metadata like time of transmission and packet size.
+Even though Reticulum encrypts traffic, TCP does not, so an adversary may be able to use
+packet inspection to learn that a system is running Reticulum, and what other IP addresses connect to it.
+Hosting a publicly reachable instance over TCP also requires a publicly reachable IP address,
+which most Internet connections don't offer anymore.
+
+The ``I2PInterface`` routes messages through the `Invisible Internet Protocol
+(I2P) `_. To use this interface, users must also run an I2P daemon in
+parallel to ``rnsd``. For always-on I2P nodes it is recommended to use `i2pd `_.
+
+By default, I2P will encrypt and mix all traffic sent over the Internet, and
+hide both the sender and receiver Reticulum instance IP addresses. Running an I2P node
+will also relay other I2P user's encrypted packets, which will use extra
+bandwidth and compute power, but also makes timing attacks and other forms of
+deep-packet-inspection much more difficult.
+
+I2P also allows users to host globally available Reticulum instances from non-public IP's and behind firewalls and NAT.
+
+In general it is recommended to use an I2P node if you want to host a publicly accessible
+instance, while preserving anonymity. If you care more about performance, and a slightly
+easier setup, use TCP.
+
Adding Radio Interfaces
=======================
Once you have Reticulum installed and working, you can add radio interfaces with
@@ -433,20 +317,18 @@ cheaply build an :ref:`RNode`, which is a general-purpose long-range
digital radio transceiver, that integrates easily with Reticulum.
To build one yourself requires installing a custom firmware on a supported LoRa
-development board with an auto-install script. Please see the :ref:`Communications Hardware`
-chapter for a guide. If you prefer purchasing a ready-made unit, you can refer to the
-:ref:`list of suppliers`. For more information on RNode, you can also
-refer to these additional external resources:
+development board with an auto-install script or web-based flasher.
+Please see the :ref:`Communications Hardware` chapter for a guide.
+If you prefer purchasing a ready-made unit, you can refer to the
+:ref:`list of suppliers`.
-* `How To Make Your Own RNodes `_
-* `Installing RNode Firmware on Compatible LoRa Devices `_
-* `Private, Secure and Uncensorable Messaging Over a LoRa Mesh `_
-* `RNode Firmware `_
+Other radio-based hardware interfaces are being developed and made available by
+the broader Reticulum community. You can find more information on such topics
+over Reticulum-based information sharing systems.
If you have communications hardware that is not already supported by any of the
-:ref:`existing interface types`, but you think would be suitable for use with Reticulum,
-you are welcome to head over to the `GitHub discussion pages `_
-and propose adding an interface for the hardware.
+:ref:`existing interface types`, it is easy to write (and potentially
+publish) a :ref:`custom interface module` that makes it compatible with Reticulum.
Creating and Using Custom Interfaces
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 70212c2..b33049c 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -20,6 +20,7 @@ to participate in the development of Reticulum itself.
whatis
gettingstartedfast
+ software
using
understanding
hardware
diff --git a/docs/source/screenshots/columba.png b/docs/source/screenshots/columba.png
new file mode 100644
index 0000000..89d8544
Binary files /dev/null and b/docs/source/screenshots/columba.png differ
diff --git a/docs/source/screenshots/columba.png~ b/docs/source/screenshots/columba.png~
new file mode 100644
index 0000000..32eda74
Binary files /dev/null and b/docs/source/screenshots/columba.png~ differ
diff --git a/docs/source/screenshots/columba.webp b/docs/source/screenshots/columba.webp
new file mode 100644
index 0000000..956ea8e
Binary files /dev/null and b/docs/source/screenshots/columba.webp differ
diff --git a/docs/source/screenshots/columba.webp~ b/docs/source/screenshots/columba.webp~
new file mode 100644
index 0000000..faa3035
Binary files /dev/null and b/docs/source/screenshots/columba.webp~ differ
diff --git a/docs/source/screenshots/lxst_phone.png b/docs/source/screenshots/lxst_phone.png
new file mode 100644
index 0000000..6e59eab
Binary files /dev/null and b/docs/source/screenshots/lxst_phone.png differ
diff --git a/docs/source/screenshots/lxst_phone.webp b/docs/source/screenshots/lxst_phone.webp
new file mode 100644
index 0000000..697359a
Binary files /dev/null and b/docs/source/screenshots/lxst_phone.webp differ
diff --git a/docs/source/screenshots/meshchatx.png b/docs/source/screenshots/meshchatx.png
new file mode 100644
index 0000000..018ec87
Binary files /dev/null and b/docs/source/screenshots/meshchatx.png differ
diff --git a/docs/source/screenshots/meshchatx.webp b/docs/source/screenshots/meshchatx.webp
new file mode 100644
index 0000000..24fd7ba
Binary files /dev/null and b/docs/source/screenshots/meshchatx.webp differ
diff --git a/docs/source/screenshots/rbrowser.png b/docs/source/screenshots/rbrowser.png
new file mode 100644
index 0000000..2b702c9
Binary files /dev/null and b/docs/source/screenshots/rbrowser.png differ
diff --git a/docs/source/screenshots/rbrowser.webp b/docs/source/screenshots/rbrowser.webp
new file mode 100644
index 0000000..e717d2b
Binary files /dev/null and b/docs/source/screenshots/rbrowser.webp differ
diff --git a/docs/source/screenshots/retibbs.png b/docs/source/screenshots/retibbs.png
new file mode 100644
index 0000000..32827ce
Binary files /dev/null and b/docs/source/screenshots/retibbs.png differ
diff --git a/docs/source/screenshots/retibbs.webp b/docs/source/screenshots/retibbs.webp
new file mode 100644
index 0000000..5695b9f
Binary files /dev/null and b/docs/source/screenshots/retibbs.webp differ
diff --git a/docs/source/screenshots/rnphone.jpg b/docs/source/screenshots/rnphone.jpg
new file mode 100644
index 0000000..af81919
Binary files /dev/null and b/docs/source/screenshots/rnphone.jpg differ
diff --git a/docs/source/screenshots/rnphone.webp b/docs/source/screenshots/rnphone.webp
new file mode 100644
index 0000000..10bf686
Binary files /dev/null and b/docs/source/screenshots/rnphone.webp differ
diff --git a/docs/source/software.rst b/docs/source/software.rst
new file mode 100644
index 0000000..f1f5588
--- /dev/null
+++ b/docs/source/software.rst
@@ -0,0 +1,355 @@
+.. _software-main:
+
+************************
+Programs Using Reticulum
+************************
+
+This chapter provides a non-exhaustive list of notable programs, systems and application-layer
+protocols that have been built using Reticulum.
+
+These programs will let you get a feel for how Reticulum works. Most of them have been designed
+to run well even over slow networks based on LoRa or packet radio, but all can also be used over fast
+links, such as local WiFi, wired Ethernet, the Internet, or any combination.
+
+As such, it is easy to get started experimenting, without having to set up any radio
+transceivers or infrastructure just to try it out. Launching the programs on separate
+devices connected to the same WiFi network is enough to get started, and physical
+radio interfaces can then be added later.
+
+Programs & Utilities
+====================
+
+Many different applications using Reticulum already exist, serving a wide variety of purposes
+from day-to-day communication and information sharing to systems administration and tackling
+advanced networking and communications challenges.
+
+Development of Reticulum-based applications and systems is ongoing, so consider this list
+a non-exhaustive starting point of *some* of the options available. With a bit of searching,
+primarily over Reticulum itself, you will find many more interesting things.
+
+Remote Shell
+^^^^^^^^^^^^
+
+The `rnsh `_ program lets you establish fully interactive
+remote shell sessions over Reticulum. It also allows you to pipe any program to or from a
+remote system, and is similar to how ``ssh`` works. The ``rnsh`` program is very efficient, and
+can facilitate fully interactive shell sessions, even over extremely low-bandwidth links,
+such as LoRa or packet radio.
+
+In addition to the default, fully interactive terminal mode,
+for extremely limited links, ``rnsh`` offers line-interactive mode, allowing you to interact
+with remote systems, even when link throughput is counted in a few hundreds of bits per second.
+
+.. raw:: latex
+
+ \newpage
+
+Nomad Network
+^^^^^^^^^^^^^
+
+The terminal-based program `Nomad Network `_
+provides a complete encrypted communications suite built with Reticulum. It features
+encrypted messaging (both direct and delayed-delivery for offline users), file sharing,
+and has a built-in text-browser and page server with support for dynamically rendered pages,
+user authentication and more.
+
+.. image:: screenshots/nomadnet_3.png
+ :target: https://github.com/markqvist/nomadnet
+
+`Nomad Network `_ is a user-facing client
+for the messaging and information-sharing protocol LXMF.
+
+RNS Page Node
+^^^^^^^^^^^^^
+
+`RNS Page Node `_ is a simple way to serve pages and files to any other Nomad Network compatible client. Drop-in replacement for NomadNet nodes that primarily serve pages and files.
+
+
+Retipedia
+^^^^^^^^^
+
+You can host the entirity of Wikipedia (or any ``.zim``) file to other Nomad Network clients using `Retipedia `_.
+
+
+.. raw:: latex
+
+ \newpage
+
+Sideband
+^^^^^^^^
+
+If you would rather use an LXMF client with a graphical user interface, you can take
+a look at `Sideband `_, which is available for Android,
+Linux, macOS and Windows. Sideband is an advanced LXMF and LXST client, and a multi-purpose Reticulum
+utility, with features and functionality targeted at advanced users.
+
+.. only:: html
+
+ .. image:: screenshots/sideband_devices.webp
+ :align: center
+ :target: https://unsigned.io/sideband
+
+.. only:: latex
+
+ .. image:: screenshots/sideband_devices.png
+ :align: center
+ :target: https://unsigned.io/sideband
+
+Sideband allows you to communicate with other people or LXMF-compatible
+systems over Reticulum networks using LoRa, Packet Radio, WiFi, I2P, Encrypted QR
+Paper Messages, or anything else Reticulum supports.
+
+It also interoperates with all other LXMF clients, and provides advanced features such as voice messaging,
+real-time voice calls, file attachments, private telemetry sharing, and a full
+plugin system for expandability.
+
+.. raw:: latex
+
+ \newpage
+
+MeshChatX
+^^^^^^^^
+
+A `Reticulum MeshChat fork from the future `_, with the goal of providing everything you need for Reticulum, LXMF, and LXST in one beautiful and feature-rich application. This project is separate from the original Reticulum MeshChat project, and is not affiliated with the original project.
+
+.. only:: html
+
+ .. image:: screenshots/meshchatx.webp
+ :align: center
+ :target: https://git.quad4.io/RNS-Things/MeshChatX
+
+.. only:: latex
+
+ .. image:: screenshots/meshchatx.png
+ :align: center
+ :target: https://git.quad4.io/RNS-Things/MeshChatX
+
+
+Features include full LXST support, custom voicemail, phonebook, contact sharing, and ringtone support, multi-identity handling, modern UI/UX, offline documentation, expanded tools, page archiving, integrated maps and improved application security.
+
+.. raw:: latex
+
+ \newpage
+
+MeshChat
+^^^^^^^^
+
+The `Reticulum MeshChat `_ application
+is a user-friendly LXMF client for Linux, macOS and Windows, that also includes a Nomad Network
+page browser and other interesting functionality.
+
+.. only:: html
+
+ .. image:: screenshots/meshchat_1.webp
+ :align: center
+ :target: https://github.com/liamcottle/reticulum-meshchat
+
+.. only:: latex
+
+ .. image:: screenshots/meshchat_1.png
+ :align: center
+ :target: https://github.com/liamcottle/reticulum-meshchat
+
+Reticulum MeshChat is of course also compatible with Sideband and Nomad Network, or
+any other LXMF client.
+
+Columba
+^^^^^^^
+
+`Columba `_ is a simple and familiar LXMF
+messaging app Android, built with a native Android interface and Material Design 3.
+
+.. only:: html
+
+ .. image:: screenshots/columba.webp
+ :align: center
+ :width: 25%
+ :target: https://github.com/torlando-tech/columba/
+
+.. only:: latex
+
+ .. image:: screenshots/columba.png
+ :align: center
+ :width: 25%
+ :target: https://github.com/torlando-tech/columba/
+
+While still in early and very active development, it is of course also compatible
+with all other LXMF clients, and allows you to message seamlessly with anyone else
+using LXMF.
+
+.. raw:: latex
+
+ \newpage
+
+Reticulum Relay Chat
+^^^^^^^^^^^^^^^^^^^^
+
+`Reticulum Relay Chat `_ is a live chat system built on top of the Reticulum Network Stack. It exists to let people talk to each other in real time over Reticulum without dragging in message databases, synchronization engines, or architectural commitments they did not ask for.
+
+The `rrcd `_ program provides a functional, reference RRC hub-server daemon implementation. RRC user clients include `rrc-gui `_ and `rrc-web `_.
+
+RRC is closer in spirit to IRC than to modern “everything platforms.” You connect, you join a room, you talk, and then you leave. If you were present, you saw the conversation. If you were not, the conversation did not wait for you. This is not an accident. This is the entire design.
+
+RetiBBS
+^^^^^^^
+
+`RetiBBS `_ is a bulletin board system implementation for Reticulum networks.
+
+.. only:: html
+
+ .. image:: screenshots/retibbs.webp
+ :align: center
+ :target: https://github.com/kc1awv/RetiBBS
+
+.. only:: latex
+
+ .. image:: screenshots/retibbs.png
+ :align: center
+ :target: https://github.com/kc1awv/RetiBBS
+
+RetiBBS allows users to communicate through message boards in a secure manner.
+
+.. raw:: latex
+
+ \newpage
+
+RBrowser
+^^^^^^^^
+
+The `rBrowser `_ program is a cross-platoform, standalone, web-based browser for exploring NomadNetwork Nodes over Reticulum Network. It automatically discovers NomadNet nodes through network announces and provides a user-friendly interface for browsing distributed content with Micron markup support.
+
+.. only:: html
+
+ .. image:: screenshots/rbrowser.webp
+ :align: center
+ :target: https://github.com/fr33n0w/rBrowser
+
+.. only:: latex
+
+ .. image:: screenshots/rbrowser.png
+ :align: center
+ :target: https://github.com/fr33n0w/rBrowser
+
+Includes useful features like automatic listening for announce, adding nodes to favorites, browsing and rendering any kind of NomadNet links, downloading files from remote nodes, a unique local NomadNet Search Engine and more.
+
+
+.. raw:: latex
+
+ \newpage
+
+Reticulum Network Telephone
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The ``rnphone`` program, included as part of the `LXST `_ package is a command-line Reticulum telephone utility and daemon, that allows building physical, hardware telephones for LXST and Reticulum, as well as simply performing calls via the command line.
+
+.. only:: html
+
+ .. image:: screenshots/rnphone.webp
+ :align: center
+ :target: https://github.com/markqvist/LXST
+
+.. only:: latex
+
+ .. image:: screenshots/rnphone.jpg
+ :align: center
+ :target: https://github.com/markqvist/LXST
+
+It supports interfacing directly with hardware peripherals such as GPIO keypads and LCD displays, providing a modular system for building secure hardware telephones.
+
+.. raw:: latex
+
+ \newpage
+
+LXST Phone
+^^^^^^^^^^
+
+The `LXST Phone `_ program is a cross-platform desktop application for performing LXST voice calls over Reticulum.
+
+.. only:: html
+
+ .. image:: screenshots/lxst_phone.webp
+ :align: center
+ :target: https://github.com/kc1awv/lxst_phone
+
+.. only:: latex
+
+ .. image:: screenshots/lxst_phone.png
+ :align: center
+ :target: https://github.com/kc1awv/lxst_phone
+
+It supports various advanced features such as SAS verification, peer blocking, rate limiting, encrypted call history storage and contact management.
+
+
+.. raw:: latex
+
+ \newpage
+
+LXMFy
+^^^^^
+
+`LXMFy `_ is a comprehensive and advanced bot creation framework for LXMF, that allows building any kind of automation or bot system running over LXMF and Reticulum. `Bot implementations exist `_ for Home Assistant control, LLM integrations, and various other purposes.
+
+
+LXMF Interactive Client
+^^^^^^^^^^^^^^^^^^^^^^^
+
+`LXMF Interactive Client `_ is a feature-rich, terminal-based LXMF messaging client with many advanced features and an extensible plugin architecture.
+
+RNS FileSync
+^^^^^^^^^^^^
+
+The `RNS FileSync `_ program enables automatic file synchronization between devices without requiring central servers, internet connectivity, or cloud services. It works over any network medium supported by Reticulum, including radio, LoRa, WiFi, or the internet, making it ideal for off-grid, privacy-focused, and resilient file sharing.
+
+
+Micron Parser JS
+^^^^^^^^^^^^^^^^
+
+`Micron Parser JS `_ is the JavaScript-based parser for the Micron markup language, that most web-based Nomad Network browsers use. If you want to make utilities or tools that display Micron pages, this library is essential.
+
+
+RNMon
+^^^^^
+
+`RNMon `_ is a monitoring daemon designed to monitor the status of multiple RNS applications and push the metrics to an InfluxDB instance over the influx line protocol.
+
+
+.. raw:: latex
+
+ \newpage
+
+Protocols
+=========
+
+A number of standard protocols have emerged through real-world usage and testing in the Reticulum community. While you may sometimes want to use completely custom protocols and implementations when writing Reticulum-based software, using these protocols provides application developers with an easy way to implement advanced functionality quickly and effortlessly. Using them also ensures compatibility and interoperability between many different client applications, creating an open communications ecosystem where users are free to choose the applications that suit their needs, while remaining connected to everyone else.
+
+LXMF
+^^^^
+
+`LXMF `_ is a simple and flexible messaging format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It offers zero-conf message routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports.
+
+LXMF is efficient enough that it can deliver messages over extremely low-bandwidth systems such as packet radio or LoRa. Encrypted LXMF messages can also be encoded as QR-codes or text-based URIs, allowing completely analog paper message transport.
+
+Using Propagation Nodes, LXMF also offer a way to store and forward messages to users or endpoints that are not directly reachable at the time of message emission.
+
+LXST
+^^^^
+
+`LXST `_ is a simple and flexible real-time streaming format and delivery protocol that allows a wide variety of applications, while using as little bandwidth as possible. It is built on top of Reticulum and offers zero-conf stream routing, end-to-end encryption and Forward Secrecy, and can be transported over any kind of medium that Reticulum supports. It currently powers real-time voice and telephony applications over Reticulum.
+
+RRC
+^^^
+
+The `Reticulum Relay Chat `_ protocol, is a live chat system built on top of the Reticulum Network Stack. It exists to provide near real-time group communication without dragging in message history databases, federation machinery, or architectural guilt.
+
+RRC is intentionally simple. It does not pretend to be email, a mailbox, or a distributed archive. It behaves more like a conversation in a room. If you were there, you heard it. If you were not, you did not. That is not a bug, that is the point.
+
+Interface Modules & Connectivity Resources
+==========================================
+
+This section provides a list of various community-provided interface modules, guides and resources for creating Reticulum networks over special or challenging mediums.
+
+* Custom interface module for running `RNS over HTTP `_
+* Guide for running `Reticulum over ICMP `_ using ``PipeInterface``
+* Guide for running `Reticulum over DNS `_ with Iodine
+* Guide for running `Reticulum over HF radio `_
+* `Modem73 `_ is a KISS TNC OFDM modem frontend that can be used with Reticulum
\ No newline at end of file