/ Changelog.md
Changelog.md
   1  ### 2026-01-17: RNS 1.1.3
   2  
   3  **Changes**
   4  - Improved discovered interface auto-connect handling
   5  - Improved interface discovery handling
   6  - Added `discovered_interfaces` API method
   7  - Fixed a potential race condition in request timeout handling
   8  - Fixed a regression in resource file transfers
   9  
  10  **Release Hashes**
  11  ```
  12  1de9b46c8f24931fa41974664ddbf4251d3fdd069be4de03c64b42a7cf4f8fb4 rns-1.1.3-py3-none-any.whl
  13  eac8d223fcb6ce94e1bd3f04730d8542675caf4b22286e11988e9402ea9b69c0 rnspure-1.1.3-py3-none-any.whl
  14  ```
  15  
  16  **Release Signatures**
  17  Release artifacts include `rsg` signature files that can be validated against the RNS release signing identity `<bc7291552be7a58f361522990465165c>` using `rnid`:
  18  
  19  ```sh
  20  rnid -i bc7291552be7a58f361522990465165c -V rns-1.1.3-py3-none-any.whl.rsg
  21  ```
  22  
  23  ### 2026-01-04: RNS 1.1.0
  24  
  25  Enjoy.
  26  
  27  **Changes**
  28  - Added on-network global interface discovery. Hello world.
  29  - Added discovered interface auto-connection. Robotic.
  30  - Added external IP resolution for discovery-enabled interfaces. Snip-snip.
  31  - Added encrypted interface discovery announces. Welcome home.
  32  - Added bootstrap interface functionality. Decent.
  33  - Added blackhole handling and management. Thank the Chinese guy.
  34  - Added distributed blackhole list publishing and updating. Spammers go home.
  35  - Added foundational network identity implementation. All your base.
  36  - Added `await_path` method to API. Tick-tock.
  37  - Added reverse-unicast peer discovery packet mechanism to AutoInterface. Ping-pong.
  38  - Added custom identity support to `rncp`, thanks MikelCalvo!
  39  - Added monitor mode to `rnstatus`, thanks MikelCalvo!
  40  - Improved announce processing. Swoosh.
  41  - Updated documentation quite a bit. Looky.
  42  - Enabled per-peer ingress limiting on Weave and Auto interfaces. Hammertime.
  43  - Fixed **the** typo, yes it's the olny one I'm sure.
  44  - Fixed bugs. Squish.
  45  
  46  **Release Hashes**
  47  ```
  48  180b8baec2ec7d21abe2cec25ff763e70b2129c012fb02fc23c2fd654f94c1f5 dist/rns-1.1.0-py3-none-any.whl
  49  d9e32caf66a9c53199e901d2c173e1de1bf50f1f0c9d5250e5d1b3b07bedcd7c dist/rnspure-1.1.0-py3-none-any.whl
  50  ```
  51  
  52  ### 2025-11-19: RNS 1.0.4
  53  
  54  This maintenance release adds improved handling for RNodes with a PA/LNA combo.
  55  
  56  **Changes**
  57  - Improved handling for RNodes with PA/LNA combo
  58  - Added interference detection stats to `rnstatus` output for RNode interfaces
  59  - Updated documentation
  60  
  61  **Release Hashes**
  62  ```
  63  7a2b7893410833b42c0fa7f9a9e3369cebb085cdd26bd83f3031fa6c1051653c rns-1.0.4-py3-none-any.whl
  64  ee647e7b3b94abdf1fab618a861390531a4aacc93eecce12c9e97280195c0e2d rnspure-1.0.4-py3-none-any.whl
  65  ```
  66  
  67  ### 2025-11-19: RNS 1.0.3
  68  
  69  This release includes updates to RNode BLE reliability, and adds support for connecting RNodes to a host over WiFi and Ethernet.
  70  
  71  **Changes**
  72  - Added support for connecting RNode devices over WiFi and Ethernet
  73  - Added support for configuring RNode WiFi and IP settings to `rnodeconf`
  74  - Updated BLE connection read timeouts on Android, fixes intermittent BLE connection resets in areas with high 2.4GHz spectrum utilization
  75  - Added handling for edge case where RNode serial port was never opened due to failure on interface detach
  76  - Fixed broken links in documentation
  77  
  78  **Release Hashes**
  79  ```
  80  6bafde4c838ad778bf6878967e84c798e34d6ca621b255f59a60f38cb04ac138 rns-1.0.3-py3-none-any.whl
  81  f277899f95c1189c6bf3beb40ac656c8b36dfd3d7e4cfb2bc3b4a1e6dc3484fa rnspure-1.0.3-py3-none-any.whl
  82  ```
  83  
  84  ### 2025-11-10: RNS 1.0.2
  85  
  86  This maintenance release adds support for high-power RNodes with a LoRa PA and/or LNA.
  87  
  88  **Changes**
  89  - Added support for RNodes with a PA and/or LNA
  90  - Added support for monitoring RNode CPU temperature via `rnodeconf`
  91  
  92  **Release Hashes**
  93  ```
  94  723bcf0a839025060ff680c4202b09fa766b35093a4a08506bb85485b8a1f154 rns-1.0.2-py3-none-any.whl
  95  b02de8aeb1381ed2610f27f78799bab031367ed7bf500951fb8d5c2542d4a409 rnspure-1.0.2-py3-none-any.whl
  96  ```
  97  
  98  ### 2025-11-02: RNS 1.0.1
  99  
 100  This release brings a number of bugfixes, as well as stability and reliability improvements. It also adds support for using Weave devices as Reticulum interfaces, fixes long-standing Bluetooth Low Energy connection issues on Android, and includes several API and usability improvements.
 101  
 102  **Changes**
 103  - Added path response signalling to announce handler API
 104  - Added interface module for Weave devices
 105  - Added support for connecting to Weave devices over serial/USB on Android
 106  - Added support for allow files to `rnx`
 107  - Added detection and logging of multicast echoes never arriving on AutoInterface system devices.
 108  - Added Heltec v4 support to `rnodeconf`
 109  - Implemented handler for ensuring dynamic destination app data can be generated and sent even on first system-internal discovery announce
 110  - Updated documentation and manual
 111  - Improved `AutoInterface` peering timing
 112  - Fixed RNodeInterface Bluetooth Low Energy connection hangs on Android
 113  - Fixed RNodeInterface Bluetooth Low Energy MTU not being configured correctly on Android
 114  - Fixed command byte collision in RNodeInterface and RNodeMultiInterface
 115  - Fixed string formatting for Android log output
 116  - Updated output formatting for `rnid`
 117  
 118  **Release Hashes**
 119  ```
 120  aa77b4c8e1b6899117666e1e55b05b3250416ab5fea2826254358ae320e8b3ed rns-1.0.1-py3-none-any.whl
 121  b3ddfa0b533631d9f1213043a0282952ae6e9f72c3072bbca053ac48e0483f7e rnspure-1.0.1-py3-none-any.whl
 122  ```
 123  
 124  ### 2025-07-14: RNS 1.0.0
 125  
 126  We're out of beta. Thanks to **everyone** who helped make it this far.
 127  
 128  This release brings a number of bugfixes, as well as stability and reliability improvements.
 129  
 130  **Changes**
 131  - Improved BLE device discovery on Android
 132  - Improved BLE MTU configuration on Android
 133  - Fixed a bug in handling of link requests with invalid link mode bytes
 134  - Fixed potential AutoInterface peer discovery add before final init complete
 135  - Fixed a potential EPOLL backend hang on interface failure
 136  - Fixed various log statements
 137  - Fixed announce cap crash for `RNodeMultiInterface` with transport mode enabled
 138  - Updated documentation
 139  - Removed legacy AES-128 handlers
 140  
 141  **Release Hashes**
 142  ```
 143  5a9f18840510b69f89c6706d130177e2843c9e19c774707ae2661030d693dfc1 rns-1.0.0-py3-none-any.whl
 144  acfd52af9bf41f78be017579ca06c0abe748d0b98dbdc9baacf140a0606599ec rnspure-1.0.0-py3-none-any.whl
 145  ```
 146  
 147  ### 2025-05-15: RNS β 0.9.6
 148  
 149  This release activates AES-256 as the default encryption mode for all communication. It is the last release that will support the old AES-128 based modes, which will be entirely phased out in the next release.
 150  
 151  This release also includes a number of API and resource consumption improvements, and fixes a bug.
 152  
 153  **Changes**
 154  - Enabled AES-256 as default encryption mode for all traffic
 155  - Added dynamic link keepalive and timeout calculation
 156  - Added ability to efficiently transfer files as responses in the `Request` API
 157  - Added ability to include metadata on `Resource` transfers
 158  - Added option to specify `Resource` auto-compression limits
 159  - Added option to specify `Request` response auto-compression limits
 160  - Added `Resource` transfer example
 161  - Added allow overwrite option to `rncp`
 162  - Improved hardware MTU auto-configuration
 163  - Improved handling of file transfers using the `Resource` API
 164  - Improved `Resource` transfer memory consumption
 165  - Improved memory consumption of applications connected to a shared instance
 166  - Improved `rncp` memory consumption for large files
 167  - Fixed announce handlers not triggering after shared instance disappearance
 168  
 169  **Release Hashes**
 170  ```
 171  a23c64a04c1e83fd0ab449f564ac904da7fd4f61c0faf68a063f486cc48b44bd rns-0.9.6-py3-none-any.whl
 172  4544882dea902b18b00d8a04c9ab93201974573b7b63c3db06cb310b0acec240 rnspure-0.9.6-py3-none-any.whl
 173  ```
 174  
 175  ### 2025-05-09: RNS β 0.9.5
 176  
 177  This release initiates migration of Reticulum from AES-128 to AES-256 as the default link and packet cipher mode. It is a compatibility/migration release, that while supporting AES-256 doesn't use it by default. It will work with both the old AES-128 based modes, and the new AES-256 based modes. There's a very slight penalty in performance to support both the old and new modes at the same time, but only for single packet APIs (not links), and it really shouldn't be noticeable in any everyday use.
 178  
 179  In the next release, version `0.9.6`, Reticulum will transition fully to AES-256 and use it by default for all communications. That means that both single packets and links will use AES-256 by default. The old AES-128 link mode may or may not be available for a few releases, but will ultimately be phased out entirely.
 180  
 181  The update requires no intervention, configuration changes or anything similar from a users or developers perspective. Everything should simply work. This goes both for the `0.9.5` update, and the next `0.9.6` update that transitions fully to AES-256.
 182  
 183  **Changes**
 184  - Added support for AES-256 mode to links and packets
 185  - Added dynamic link mode support
 186  - Added temporary backwards compatibility for AES-128 link and packet modes
 187  - Added `get_mode()` method to link API
 188  - Added tests for all enabled link modes
 189  - Added `instance_name` option and description to default config file
 190  - Improved ratchet persist reliability if Reticulum is force killed while persisting ratchets
 191  - Fixed interface string representation for some interfaces
 192  - Fixed instance name config option being overwritten if option was not last in section
 193  - Fixed unhandled potential exception on fast-flapping `BackboneInterface` connections
 194  
 195  **Release Hashes**
 196  ```
 197  ae6587c86c98cae0df73567af093cc92fe204e71bb01f2506da9aec626a27e97 rns-0.9.5-py3-none-any.whl
 198  96208c1d1234e3e4b1c18ca986bad5d4693aeb431453efd7ade33b87f35600e1 rnspure-0.9.5-py3-none-any.whl
 199  ```
 200  
 201  ### 2025-04-15: RNS β 0.9.4
 202  
 203  This release significantly improves memory utilisation and performance. It also includes a few new features and general improvements to the included utilities and programs.
 204  
 205  **Changes**
 206  - Significantly improved memory utilisation, thread count and performance on nodes with many interfaces or clients
 207  - Switched local instance communication to run over abstract domain sockets on Linux and Android
 208  - Switched instance IPC to run over abstract domain sockets on Linux and Android
 209  - Added kernel event based I/O backend on Linux and Android
 210  - Added fast `BackboneInterface` type
 211  - Added support for XIAO-ESP32S3 to `rnodeconf`
 212  - Added interactive shell option to `rnsd`
 213  - Added API option to search for identity by identity hash
 214  - Added option to run TCP and Backbone interfaces in AP mode
 215  - Improved `RNodeMultiInterface` host communications specification
 216  - Improved `rncp` statistics output
 217  - Improved link and reverse-table culling
 218  - Fixed an occasional I/O thread hang on instance shutdown, that would result in an error printed to the console
 219  - Fixed various minor interface logging inconsistencies
 220  - Fixed various minor interface checking inconsistencies
 221  - Updated internal `configobj` implementation
 222  - Refactored various parts of the transport core code
 223  - Swicthed to using internal `netinfo` implementation instead of including full `ifaddr` library
 224  - Cleaned out unneeded dependencies
 225  
 226  **Release Hashes**
 227  ```
 228  737294f29e013f9fa9c8c1326006d0547497607156828fee3dc2a0d3ddd754e7  rns-0.9.4-py3-none-any.whl
 229  0bd8a908af115c27733484853d779574d6383ebc1d78160e5a72c14ed9692a13  rnspure-0.9.4-py3-none-any.whl
 230  ```
 231  
 232  ### 2025-03-13: RNS β 0.9.3
 233  
 234  This maintenance release improves performance and fixes a number of bugs.
 235  
 236  **Changes**
 237  - Enabled link MTU discovery by default
 238  - Added on-demand object code compilation and loader shim
 239  - Added link API methods
 240  - Added child interface spawning for AutoInterface
 241  - Fixed corrupt ratchet files not being removed on maintenance cleaning
 242  - Fixed `rnid` not waiting for announce timebase tick before announcing
 243  
 244  **Release Hashes**
 245  ```
 246  0270c988a2b898b28348cd78138667115d4ef3f7e09c86531baaefbee35ef851 rns-0.9.3-py3-none-any.whl
 247  eee1a6c4c9c0f04bb17b12b8fb37b9c4cec12a99c87a046730eb7c9a6ffd999f rnspure-0.9.3-py3-none-any.whl
 248  ```
 249  
 250  ### 2025-01-19: RNS β 0.9.2
 251  
 252  This maintenance release fixes a number of bugs.
 253  
 254  **Changes**
 255  - Fixed missing RX/TX bytes statistics assignment
 256  - Fixed potential daemon thread IO buffer deadlock on externally mediated shutdown signal
 257  - Fixed missing check for path announce emission timestamp in lower hop-count announce processing
 258  
 259  **Release Hashes**
 260  ```
 261  068eb4408b332ea6eec1a58fb4644fba3531c9ca10dcd79ecf893aaaf40e720d rns-0.9.2-py3-none-any.whl
 262  1e7c123d244cc14c287568f3a99953cc11ffc1e79a72a029aa1be72fa8eff24e rnspure-0.9.2-py3-none-any.whl
 263  ```
 264  
 265  ### 2025-01-19: RNS β 0.9.1
 266  
 267  This maintenance release adds reject signalling mechanism to resource transfers, fixes inconsistencies in the code examples, and improves thread configuration in the transport core.
 268  
 269  **Changes**
 270  - Added resource reject signalling
 271  - Added error reporting on configured radio parameter mismatch on Android
 272  - Improved thread configuration for transport core threads
 273  - Updated examples
 274  
 275  **Release Hashes**
 276  ```
 277  49288a562ad6d4b5647c3afec051a6bb6497b75e3f165a972436134d4a93ad76 rns-0.9.1-py3-none-any.whl
 278  abd6c4bdead2fc25d0b9b2cda5708586e8cb776b088f2a901a5f262e2ed901ae rnspure-0.9.1-py3-none-any.whl
 279  ```
 280  
 281  ### 2025-01-17: RNS β 0.9.0
 282  
 283  This release lays the groundwork for future performance and resource utilisation optimisations. Most importantly, this release adds **link MTU autodiscovery**, which allow established links to use much higher MTUs than the base MTU of 500 bytes.
 284  
 285  **Please note!** To actually use link MTU discovery, all transport nodes along the path must be upgraded to at least version `0.9.0`. Since this is the first release to add support for this feature, *it is currently **not** activated by default*, and no clients or applications will use it yet. Using link MTU autodiscovery by default will be enabled by default in RNS version `0.9.1`. Please upgrade your nodes!
 286  
 287  Additionally, this release adds several new features, performance improvements and bug fixes, as well as support for RNodes running firmware version `1.81`.
 288  
 289  **Changes**
 290  - Added MTU autoconfiguration on interfaces that support higher MTUs
 291  - Added link MTU autodiscovery and path clamping
 292  - Added dynamic SDU calculations based on link MTU to `Resource`, `Channel` and `Buffer`
 293  - Added resource EIFR continuity to split resource handling
 294  - Added interference status to `RNodeInterface`
 295  - Fixed a display bug in `rnstatus`
 296  - Added live traffic stats to `rnstatus`
 297  - Added T3S3 support to `rnodeconf`
 298  - Added Heltec T114 support to `rnodeconf`
 299  - Added LilyGO T-Echo support to `rnodeconf`
 300  - Added option to print device configuration to `rnodeconf`
 301  - Improved CPU utilisation and memory consumption
 302  - Improved `rnsd` restart time on systems with many interfaces
 303  - Improved `rncp` status output
 304  - Improved packet filter performance
 305  - Improved interface detachment handling
 306  - Improved resource transfer timing and performance
 307  - Improved Transport core efficiency
 308  - Improved reliability of ratchet reloads if I/O conflicts occur
 309  - Improved logging
 310  - Improved built-in profiler
 311  - Fixed a potential deadlock in logging
 312  - Fixed time formatters not handling negative times
 313  - Updated example code
 314  
 315  **Release Hashes**
 316  ```
 317  1ee60634cf0627c45b93f4e6c9adaf1fcdf9c1a8dfd4dd3dcd499e029554ab4f rns-0.9.0-py3-none-any.whl
 318  b67eec583fdb224ba8174b317e66b8f7344e338e93760ed1a90f0bafea8cf09e rnspure-0.9.0-py3-none-any.whl
 319  ```
 320  
 321  ### 2025-01-09: RNS β 0.8.9
 322  
 323  This maintenance release adds a number of configuration options to `rnodeconf`.
 324  
 325  **Changes**
 326  - Added noise floor output to `rnstatus` for supported interfaces
 327  - Added channel noise floor and CSMA parameter reporting to `RNodeInterface`
 328  - Added ability to set display rotation in `rnodeconf`
 329  - Added ability to configure interference avoidance to `rnodeconf`
 330  - Fixed missing console image install on Heltec V3 in `rnodeconf`
 331  
 332  **Release Hashes**
 333  ```
 334  b54fe8bc296f83a3a70569c9d1e9db3096249789c18f8d0217671479fa6881a1 rns-0.8.9-py3-none-any.whl
 335  52fd992e5f9478d5a1f61f8f37dc0ee2d268fdd0b8a4e6656d33d632490afc5a rnspure-0.8.9-py3-none-any.whl
 336  ```
 337  
 338  ### 2024-12-11: RNS β 0.8.8
 339  
 340  This maintenance release adds a single API function and fixes a bug.
 341  
 342  **Changes**
 343  - Allow announce handlers to receive announce packet hash
 344  - Fix packet RSSI/SNR/Q cache not being available on standalone instances
 345  
 346  **Release Hashes**
 347  ```
 348  9c1755a81049c67b051ecb9fe4b2c5f7d98bf09d20ed52d6ce6a410298b0527b rns-0.8.8-py3-none-any.whl
 349  d8871d69cde4b0a0b99b383f324d651dc77a2f44ec9641be828902c778a8d128 rnspure-0.8.8-py3-none-any.whl
 350  ```
 351  
 352  ### 2024-12-09: RNS β 0.8.7
 353  
 354  This maintenance release adds support for OpenWRT packaging, and brings several minor improvements and bugfixes.
 355  
 356  Thanks to @gretel and @jacobeva, who contributed to this release!
 357  
 358  **Changes**
 359  - Added support for packaging RNS to OpenWRT
 360  - Added ability to run `rnstatus` as application-local imported module
 361  - Added ability to reflect RNS log output to app-internal log handler callback
 362  - Added display read functionality to `RNodeInterface`
 363  - Fixed a regression in `RNodeMultiInterface` caused by earlier refactoring
 364  - Imrpoved documentation
 365  
 366  **Release Hashes**
 367  ```
 368  e76ba8feeeae2c8df27e9906deebd7c721f0f0e887ad3fbd26df0212d6ce907a rns-0.8.7-py3-none-any.whl
 369  046608539bc235d52c970c7f3c54e7aa01a86016ae00263f8a55fc796b6939f5 rnspure-0.8.7-py3-none-any.whl
 370  ```
 371  
 372  ### 2024-11-24: RNS β 0.8.6
 373  
 374  This release adds full interface modularity and custom interface loading to RNS. Users can now easily create and use their own custom interfaces for communicating over practically anything. Support for IPv6 has also been added to the TCP-based interfaces.
 375  
 376  In addition, several bugs have been fixed, and various internal improvements to code consistency and naming conventions have been carried out.
 377  
 378  Thanks to @gretel and @deavmi, who contributed to this release!
 379  
 380  **Changes**
 381  - Added ability to load and configure custom, user-supplied interfaces
 382  - Added IPv6 support to `TCPClientInterface` and `TCPServerInterface`
 383  - Added an init option to the API for requiring an existing shared instance
 384  - Changed `rnstatus` behaviour to only show status if Reticulum is already running
 385  - Fixed `KISSInterface` beacon length for compatibility with software modems
 386  - Fixed interface client count sometimes reporting incorrect values on TCP and I2P interfaces
 387  - Refactored and improved interface initialisation and configuration handling
 388  - Refactored interface code to be more consistent
 389  - Refactored various deprecated references and names
 390  - Updated documentation and manual
 391  
 392  **Release Hashes**
 393  ```
 394  60be127f003cd7838149bf8f01020206f829a7bd192706a608e39d8d7193d07b rns-0.8.6-py3-none-any.whl
 395  d8701e19279d292b5b8af9da7c67b6ac88a992ca65109f8182c3e5c761a9ebeb rnspure-0.8.6-py3-none-any.whl
 396  ```
 397  
 398  ### 2024-10-20: RNS β 0.8.5
 399  
 400  This maintenance release fixes a number of bugs. Thanks to @faragher for contributing to this release!
 401  
 402  **Changes**
 403  - Fixed missing close of file handles
 404  - Fixed invalid values returned from `get_snr()` and `get_q()` physical layer stats API functions
 405  
 406  **Release Hashes**
 407  ```
 408  1757e809e083585bf4c23b6fe0f29954e5a1586ce14081099e38e606a75831df rns-0.8.5-py3-none-any.whl
 409  44254630634f4dbb1ce3242247fe8180379d27bff15d183263b1856fd662f88d rnspure-0.8.5-py3-none-any.whl
 410  ```
 411  
 412  ### 2024-10-11: RNS β 0.8.4
 413  
 414  This release fixes a number of bugs and improves reliability of automatic reconnection when BLE-connected RNodes unexpectedly disappear or lose connection.
 415  
 416  **Changes**
 417  - Improved RNode BLE reconnection realiability
 418  - Added RNode battery state to `rnstatus` output
 419  - Fixed resource transfer hanging for a long time over slow links if proof packet is lost
 420  - Fixed missing import on Android
 421  
 422  **Release Hashes**
 423  ```
 424  d3f7a9fddc6c1e59b1e4895756fe602408ac6ef09de377ee65ec62d09fff97a3 rns-0.8.4-py3-none-any.whl
 425  eb3843bcab1428be0adb097988991229a4c03156ab40cc9c6e2d9c590d8b850b rnspure-0.8.4-py3-none-any.whl
 426  ```
 427  
 428  ### 2024-10-10: RNS β 0.8.3
 429  
 430  This release fixes a bug in resource transfer progress calculation, improves RNode error handling, and brings minor improvements to the `rncp` utility.
 431  
 432  **Changes**
 433  - Fixed a bug in resource transfer progress calculations
 434  - Added physical layer transfer rate output option to `rncp`
 435  - Added save directory option to `rncp`
 436  - Improved path handling for the fetch-jail option of of `rncp`
 437  - Added error detection for modem communication timeouts on connected RNode devices
 438  
 439  **Release Hashes**
 440  ```
 441  54ddab32769081045db5fe45b27492cc012bf2fad64bc65ed37011f3651469fb rns-0.8.3-py3-none-any.whl
 442  a04915111d65b05a5f2ef2687ed208813034196c0c5e711cb01e6db72faa23ef rnspure-0.8.3-py3-none-any.whl
 443  ```
 444  
 445  ### 2024-10-06: RNS β 0.8.2
 446  
 447  This release adds several new boards to `rnodeconf`, fixes a range of bugs and improves transport reliability.
 448  
 449  Thanks to @jacobeva, @prusnak and @deavmi who contributed to this release!
 450  
 451  **Changes**
 452  - Added support for T-Beam Supreme devices to `rnodeconf`
 453  - Added support for T3S3 devices to `rnodeconf`
 454  - Added support for T-Deck devices to `rnodeconf`
 455  - Added support for new hardware error codes from connected RNodes
 456  - Added the ability to control the display on nRF52-based RNodes
 457  - Improved resource transfers over very slow links, by adding more suitable `MAX_WINDOW` cap if link speed is continously below threshold.
 458  - Improved `rnodeconf` flashing so manual resets for some devices are no longer required
 459  - Added edge case handling for receiving a link proof after the link had timed out and been closed, but before it having been purged from active links table
 460  - Updated supported hardware section of the manual with new boards
 461  - Tuned path request timing for roaming instances
 462  - Fixed a bug that caused RNS to fail to initialise in Termux on Android
 463  - Fixed a bug in RNodeInterface firmware version comparison
 464  - Fixed a bug in the serial framing of RNodeMultiInterface
 465  - Fixed a bug in sub-interface spawning of RNodeMultiInterface
 466  
 467  **Release Hashes**
 468  ```
 469  db720a727a09c0c9d76288dec5a995a30146e65d6a4c5c034f47fb60a78f4962 rns-0.8.2-py3-none-any.whl
 470  ee412535edba48817551658247fb0c843d17e1c97cad9d2a819a7fc627c5ba28 rnspure-0.8.2-py3-none-any.whl
 471  ```
 472  
 473  ### 2024-10-02: RNS β 0.8.1
 474  
 475  This release adds BLE support to RNodeInterface, and support for configuring additional options to `rnodeconf`.
 476  
 477  **Changes**
 478  - Added Bluetooth Low Energy support to RNodeInterface
 479  - Added RNode battery information to `rnstatus` output
 480  - Added display blanking configuration to `rnodeconf`
 481  - Added NeoPixel intensity configuration to `rnodeconf`
 482  
 483  **Release Hashes**
 484  ```
 485  f4b6b99b67d6b33b8a4562e5d5d5ac54c76814fff26e6c7a79950b82bd80123f rns-0.8.1-py3-none-any.whl
 486  c2e540b4bf0f272bb51ae3e33a02f9c07f2619746d069d7ed83d88017bf7ea30 rnspure-0.8.1-py3-none-any.whl
 487  ```
 488  
 489  ### 2024-09-25: RNS β 0.8.0
 490  
 491  This maintenance release improves the interface statistics API, and updates documentation.
 492  
 493  **Changes**
 494  - Added additional information to interface statistics
 495  - Updated documentation
 496  
 497  **Release Hashes**
 498  ```
 499  fa5ff6d98230693be6805bb9a94585a6f54ec0af9cba15b771d4e676f140dc43 rns-0.8.0-py3-none-any.whl
 500  ba20f688b69ae861c8aced251e10242a358fea15da6c22df10d4fc8846c9bf48 rnspure-0.8.0-py3-none-any.whl
 501  ```
 502  
 503  ### 2024-09-24: RNS β 0.7.9
 504  
 505  This maintenance release improves transport reliability in certain (rare) cases.
 506  
 507  **Changes**
 508  - Added handling of a transport edge-case
 509  
 510  **Release Hashes**
 511  ```
 512  4c20c46df021d366386d497145024396f904666b0de22a92f9e5c937886ea39d rns-0.7.9-py3-none-any.whl
 513  97d26282df929eca732a15523bc9d7f66387a93ffd911e8063c94c3f8f6ad73c rnspure-0.7.9-py3-none-any.whl
 514  ```
 515  
 516  ### 2024-09-18: RNS β 0.7.8
 517  
 518  This maintenance release adds support for the openCom XL to `rnodeconf`, fixes a number of bugs, and also includes a few fine-tunings of timing parameters.
 519  
 520  Thanks to @liamcottle and @jacobeva for contributing to this release!
 521  
 522  **Changes**
 523  - Added interface prioritisation according to reported bitrate
 524  - Added support for openCom XL to `rnodeconf`
 525  - Added performance profiler to built-in debugging tools
 526  - Tuned link traffic timeouts
 527  - Fixed a module import error in AX25KissInterface
 528  - Fixed a missing exception on erroneous destination initialisation
 529  
 530  **Release Hashes**
 531  ```
 532  33fb9443e3b327d1a9125baa52d8ec3208a089dda62f749b819e0a94c06730f9 rns-0.7.8-py3-none-any.whl
 533  cdced2adef4ead146239d0510fe2b9d62f69136bcd54b22d1080686fb56f9927 rnspure-0.7.8-py3-none-any.whl
 534  ```
 535  
 536  ### 2024-09-09: RNS β 0.7.7
 537  
 538  This release adds support for automatic encryption key ratcheting for all packets, not just those sent over Reticulum links. In practical terms, this adds forward secrecy to packets sent with the raw `Packet` API.
 539  
 540  In this release, the ratchets feature must be enabled on a per-destination basis by calling the `enable_ratchets` method on the relevant destination. In a future release, ratchets may become the default option, but for backwards-compatibility, it is currently optional. For more information, read the API documentation.
 541  
 542  **Please note!** Versions of RNS prior to `0.7.7` will not be able to pass announces for destinations with ratchets enabled! If you use applications that can use ratchets (for example, LXMF version `0.5.0` and up), it is important that you update all transport instances on your network to `0.7.7`.
 543  
 544  Thanks to @deavmi, @faragher, @jacobeva, @jeremy and @jeremybox for contributing to this release!
 545  
 546  **Changes**
 547  - Added key ratchet rotation and signalling
 548  - Added ratchet API to documentation
 549  - Added initial support for flashing T-Echo devices to `rnodeconf`
 550  - Added remote management config options to example config
 551  - Added automtic integration tests to source repository
 552  - Fixed a regression that caused RNS not to work on Python versions lower than 3.10
 553  - Fixed missing `establishment_rate` property init on Link objects
 554  
 555  **Release Hashes**
 556  ```
 557  0a3ab6dc82567a19adabe737358daee3002b60beda8ac0bf228f2a0c134ff6d8 rns-0.7.7-py3-none-any.whl
 558  89b33fe9ab923139d3f5d43726d92817642be05a8c9d328c3becfc3c409e4b4b rnspure-0.7.7-py3-none-any.whl
 559  ```
 560  
 561  ### 2024-05-18: RNS β 0.7.6
 562  
 563  This release adds support for RNodes with multiple radio transceivers, courtesy of @jacobeva. It also brings a number of functionality and performance improvements, and fixes several bugs.
 564  
 565  Thanks to @jacobeva, @faragher, @nathmo, @jschulthess and @liamcottle for contributing to this release!
 566  
 567  **Changes**
 568  - Added support for RNode Multi interfaces
 569  - Added initial support for remote management of Reticulum instances
 570  - Improved resource transfer performance for large resources
 571  - Improved path rediscovery in topologies with roaming transport nodes
 572  - Fixed incorrect TX power limit on Android RNode interfaces
 573  - Added ability to fetch remote files to `rncp`
 574  - Added fetch request jail option to `rncp`
 575  - Improved `rncp` status display output
 576  - Added link table statistics to `rnstatus`
 577  - Fixed `rnstatus` JSON output bug when IFAC was enabled on an interface
 578  - Added remote instance interface status to `rnstatus`
 579  - Added ability to query path- and rate-tables on remote instances with `rnpath`
 580  - Added JSON output option to `rnpath` utility
 581  - Added max hops filter to `rnpath` path-table out
 582  - Added link age getter to API
 583  - Added request concluded status to API
 584  - Fixed invalid resource progress reported in some cases
 585  - Fixed `rnodeconf` failure to set firmware hash for NRF52 boards on macOS
 586  - Fixed broken `--rom` command line option in `rnodeconf`
 587  - Fixed various typos in documentation
 588  - Updated documentation with new API functions and features
 589  
 590  **Release Hashes**
 591  ```
 592  683ac87c62fe8a18d88c26bf639f4eeca550cefb11ee8e38d6e724e268cf14fc rns-0.7.6-py3-none-any.whl
 593  f884806624e57b799f588de9289a31d2e0460d35bc4cc5071635de5642d50ad2 rnspure-0.7.6-py3-none-any.whl
 594  ```
 595  
 596  ### 2024-05-18: RNS β 0.7.5
 597  
 598  This release adds support for AutoInterface on Windows platforms, fixes a number of bugs and adds several new supported boards to `rnodeconf`. Thanks to @faragher, @jacobeva and @liamcottle who contributed to this release!
 599  
 600  **Changes**
 601  - Added support for AutoInterface on Windows
 602  - Added support for recursive path resolution for clients on roaming-mode interfaces
 603  - Added RAK4631 support to `rnodeconf`
 604  - Added LilyGO T3S3 support to `rnodeconf`
 605  - Added ability to get target and calculated hashes via `rnodeconf`
 606  - Fixed DTR timing making flashing fail on Windows in `rnodeconf`
 607  - Fixed various output and menu bugs in `rnodeconf`
 608  
 609  **Release Hashes**
 610  ```
 611  99ec876966afdea45fcf164242c8e76c284f9e3edf09fb907638fba76e1324b1 rns-0.7.5-py3-none-any.whl
 612  11156f6301707e4d17ff2ca6d58059bc8ba6fe1bbc4dc3de165dd96dc41ee75f rnspure-0.7.5-py3-none-any.whl
 613  ```
 614  
 615  ### 2024-05-05: RNS β 0.7.4
 616  
 617  This maintenance release fixes a number of bugs, improves path requests and responses, and adds several useful features and capabilities. Thanks to @cobraPA, @jschulthess, @thiaguetz and @nothingbutlucas who contributed to this release!
 618  
 619  **Changes**
 620  - Added support for flashing and autoinstalling Heltec V3 boards to `rnodeconf`
 621  - Added custom EEPROM bootstrapping capabilities to `rnodeconf`
 622  - Added ability to load identities from file to Echo and Link examples
 623  - Added ability to specify multicast address type in AutoInterface configuration
 624  - Added link getter to resource advertisement class
 625  - Improved path response logic and timing
 626  - Improved path request timing
 627  - Fixed a bug in Link Request proof delivery on unknown hop count paths
 628  - Fixed broken link packet routing in topologies where transport packets leak to non-intended instances in the link chain
 629  - Fixed typos in documentation
 630  
 631  **Release Hashes**
 632  ```
 633  f5c35f1b8720778eb508b687d66334d01b4ab266b2d8c2bc186702220dcaae29  rns-0.7.4-py3-none-any.whl
 634  9eaa7170f97dad49551136965d3fcc971b56b1c2eda48c24b9ffd58d71daa016  rnspure-0.7.4-py3-none-any.whl
 635  ```
 636  
 637  ### 2024-03-09: RNS β 0.7.3
 638  
 639  This release adds the ability to specify custom firmware URLs for flashing boards with `rnodeconf`. Thanks to @attermann who contributed to this release!
 640  
 641  **Changes**
 642  - Added ability to specify custom firmware URLs for flashing boards with `rnodeconf`
 643  
 644  **Release Hashes**
 645  ```
 646  bb24445ae9a3a63d348e4d7fe80b750608f257851b97b38fadab929b7a774bc9 rns-0.7.3-py3-none-any.whl
 647  1b148d013103c35ba9a8e105082ef50686c130676d0a560ed709cb546129287e rnspure-0.7.3-py3-none-any.whl
 648  ```
 649  
 650  ### 2024-03-02: RNS β 0.7.2
 651  
 652  This maintenance release improves memory consumption, fixes a few bugs, and adds ability to flash new boards with `rnodeconf`.
 653  
 654  **Changes**
 655  - Added ability to flash new boards with `rnodeconf`, including T3 boards with TCXOs
 656  - Improved memory consumption on Transport Instances with many interfaces
 657  - Fixed a bug that could cause the on-disk known destinations store to become corrupted
 658  
 659  **Release Hashes**
 660  ```
 661  3ce3ba80d5ae8d19c6b55bd51f44bd4beccbcea31554cb1f0d65428e4587b3d6 rns-0.7.2-py3-none-any.whl
 662  83f914aaba2a8929a8cee95830a847e190197232a0cca4e7b906b15c6bbf8296 rnspure-0.7.2-py3-none-any.whl
 663  ```
 664  
 665  ### 2024-02-14: RNS β 0.7.1
 666  
 667  This release adds support for RNodes based on SX1262, SX1268 and SX1280 modems, and fixes a number of bugs. Thanks to @jacobeva, who contributed to this release!
 668  
 669  **Changes**
 670  - Added support for SX1262, SX1268 and SX1280 based RNodes
 671  - Updated `rnodeconf` to allow flashing T-Beam devices with SX126x chips
 672  - Fixed an invalid RSSI offset reference
 673  
 674  **Release Hashes**
 675  ```
 676  8ecfbb42b6a699fd4ac5374ab5640e4bb164e80bb9ab4401ea82da132e497877 rns-0.7.1-py3-none-any.whl
 677  e0ab487305ba1aee2d16044640e7eb72d332bbf51aeb0b8bf984d037a64cb493 rnspure-0.7.1-py3-none-any.whl
 678  ```
 679  
 680  ### 2024-01-17: RNS β 0.7.0
 681  
 682  This maintenance release fixes a number of bugs. Thanks to @jooray and @jacobeva, who contributed to this release!
 683  
 684  **Changes**
 685  - Fixed large resource transfers failing under some conditions
 686  - Fixed a potential division by zero
 687  - Fixed a missing check on malformed advertisement packets
 688  - Fixed a formatting issue in `rnprobe`
 689  - Improved resource timeout calculations
 690  
 691  **Release Hashes**
 692  ```
 693  0dc2abe5373b9afadfba7ec05bf7ddeff659c004aa339a94001ebed5b46f5b47 rns-0.7.0-py3-none-any.whl
 694  97f6e65a20b53bbdccd54b4d2bdaa36dc1712e144a55f40800c63fe7113819a5 rnspure-0.7.0-py3-none-any.whl
 695  ```
 696  
 697  ### 2023-12-07: RNS β 0.6.9
 698  
 699  This release adds a few convenience functions to the `rnid` utility, and improves roaming support on Android.
 700  
 701  **Changes**
 702  - Added identity import and export in hex, base32 and base64 formats to the `rnid` utility.
 703  - Added better carrier change detection for AutoInterface on Android.
 704  
 705  **Release Hashes**
 706  ```
 707  258daf22cb6e72c6cd04fe94447daedf51dfd968eb2f3370eab9c71ad0898dd0 rns-0.6.9-py3-none-any.whl
 708  3644b64af5b4efd3969172bf0cf95ae1afba6c8ea99ce47d8e49e31a832bbaf8 rnspure-0.6.9-py3-none-any.whl
 709  ```
 710  
 711  ### 2023-11-14: RNS β 0.6.8
 712  
 713  This maintenance release fixes a single bug.
 714  
 715  **Bugfixes**
 716  - Fixed packet receipts not being initialised in time for arriving proofs on fast interfaces
 717  
 718  **Release Hashes**
 719  ```
 720  3ffb01f3f45e35105ea30e60e5e493ba50528df38b4ea62672c9e1c093073b1c rns-0.6.8-py3-none-any.whl
 721  de372814082ef7db59f4b2745b1f22b2ef9d97815190ec16c0596ba20406e0fb rnspure-0.6.8-py3-none-any.whl
 722  ```
 723  
 724  ### 2023-11-06: RNS β 0.6.7
 725  
 726  This maintenance release improves tranport performance and fixes a logging bug.
 727  
 728  **Changes**
 729  - Improved local and remote transport performance by approximately 6x on faster links
 730  - Significantly decreased latency over faster links
 731  
 732  **Bugfixes**
 733  - Fixed logging an error message when local clients connect while shared instance is still starting up
 734  
 735  **Release Hashes**
 736  ```
 737  c37dd1f59e037841f69ec518deecdae6719f978947de2473f04e7d95247805ac rns-0.6.7-py3-none-any.whl
 738  1e2dcb44ec7271a4d26180db138fc54dce6d0d3cf3f816432d4d6a4b1cf83868 rnspure-0.6.7-py3-none-any.whl
 739  ```
 740  
 741  ### 2023-11-04: RNS β 0.6.6
 742  
 743  This maintenance release improves transfers over unreliable links and fixes a bug in requests.
 744  
 745  **Changes**
 746  - Improved reliability of resource transfers over very slow and unreliable links
 747  
 748  **Bugfixes**
 749  - Fixed a bug that could cause requests to timeout prematurely
 750  
 751  **Release Hashes**
 752  ```
 753  b1127745750a43cd7389212d31aa09ccc735ab2d69e3b80bd28874f10082c322 rns-0.6.6-py3-none-any.whl
 754  bf5ba5da4f37b93c14817367952cda63787ec88bbe601e41c13fcbb3fc22b6b6 rnspure-0.6.6-py3-none-any.whl
 755  ```
 756  
 757  ### 2023-11-02: RNS β 0.6.5
 758  
 759  This release fixes a bug in path rediscovery for shared instance clients.
 760  
 761  **Bugfixes**
 762  - Fixed a bug in path rediscovery for shared instance clients
 763  
 764  **Release Hashes**
 765  ```
 766  5d54a5cfebe907c759351357a8f7d771670c895ff57f1325bf7fec42bcb46ba3 rns-0.6.5-py3-none-any.whl
 767  accd2855e18ff06455b9454957388089e293073ec7093c64dee0dc7aa46ecb46 rnspure-0.6.5-py3-none-any.whl
 768  ```
 769  
 770  ### 2023-11-02: RNS β 0.6.4
 771  
 772  This release fixes a number of bugs that had crept in while adding the new ultra low bandwidth link timing and faster path rediscovery mechanisms.
 773  
 774  **Changes**
 775  - Adjusted link timings for better support of very slow mediums
 776  - Adjusted bluetooth read timeouts to account for occasional high latency in congested 2.4GHz environments
 777  - Added a probe count option to the `rnprobe` utility.
 778  
 779  **Bugfixes**
 780  - Fixed a missing timeout calculation
 781  - Fixed a redundant path request on path rediscovery
 782  - Fixed missing path state resetting on stale path rediscovery
 783  - Fixed a bug that could cause an attribute to be uninitialised
 784  
 785  **Release Hashes**
 786  ```
 787  566c725f68aa154eaca0880c894a39503027bf91714f17691e51d047800444c0 rns-0.6.4-py3-none-any.whl
 788  a3a447fd40bf02fdb982523de0e4e9933e8e4cd4d4bd478254ea7dcac29e3fc1 rnspure-0.6.4-py3-none-any.whl
 789  ```
 790  
 791  ### 2023-10-31: RNS β 0.6.3
 792  
 793  This release brings a series of under-the-hood reliability improvements and bugfixes. But most notably, Reticulum can now establish links over even ultra low bandwidth mediums, all the way down to 5 bits per second.
 794  
 795  Thanks to @jschulthess, who contributed to this release!
 796  
 797  **Changes**
 798  - Implemented link establishment on ultra low bandwidth links
 799  - Added link quality calculations to RNode interfaces
 800  - Added physical layer link stats to Link and Packet classes
 801  - Added userspace service documentation to the manual
 802  - Improved path rediscovery in quickly changing topographies
 803  - Improved shared interface reconnection on service restart
 804  - Improved exception handling on interface detachment
 805  - Updated formatted print functions
 806  
 807  **Bugfixes**
 808  - Fixed a missing USB command definition in the RNode interface driver
 809  - Fixed a bug in link error handling that could cause an interface to detach
 810  
 811  **Release Hashes**
 812  ```
 813  1f54d4c6ff7ab7721089cbee6630783765f65efd51312879c0d3e5bee3ceab2f rns-0.6.3-py3-none-any.whl
 814  5a90840f0fc9f1a62a3c37b514fb6222fd701a30024275dae8bcc27e29d40f25 rnspure-0.6.3-py3-none-any.whl
 815  ```
 816  
 817  ### 2023-10-07: RNS β 0.6.2
 818  
 819  This maintenance release adds the ability to specify the shared instance RPC key in the Reticulum config file, making it possible to use all Reticulum functionality in the terminal on Android.
 820  
 821  **Changes**
 822  - Added configuration option to specify shared instance RPC key
 823  - Reordered airtime stats in `rnstatus`
 824  - Updated log levels on Android
 825  
 826  **Bugfixes**
 827  - Adding missing superclass init on Android interfaces
 828  
 829  **Release Hashes**
 830  ```
 831  a9958ad90f34f344003e18077f7abd3fa85666a39dc0cae8580071820dee13f9 rns-0.6.2-py3-none-any.whl
 832  e68e8837d35d1a07a82c4b0e9db50ceace737a650e6e7e9ce2d9a013fd28f529 rnspure-0.6.2-py3-none-any.whl
 833  ```
 834  
 835  ### 2023-10-01: RNS β 0.6.1
 836  
 837  This release brings a number of bugfixes, along with useful new mechanisms for ensuring network stability under high, non-constructive and unusual announce load situation.
 838  
 839  **Changes**
 840  - Added announce ingress rate control for new and unknown destinations
 841  - Added per-interface announce frequency monitoring to the transport engine
 842  - Added per-interface announce burst hold queues
 843  - Added announce frequency statistics to `rnstatus`
 844  - Added option to sort `rnstatus` output according to various metrics
 845  - Added timeout options to `rnprobe`
 846  - Added ability to drop all paths via a specific transport instance to `rnpath`
 847  - Added new options and features to documentation and manual
 848  
 849  **Bugfixes**
 850  - Fixed announce queue not clearing all announces with exceeded retry limit at the same time
 851  - Fixed a bug that caused local packet RSSI and SNR cache to get stuck
 852  - Fixed output formatting in `rncp`
 853  - Fixed `rnid` not allowing single-aspect destination names
 854  - Fixed a number of typos in the documentation
 855  
 856  **Release Hashes**
 857  ```
 858  461e5cafa7560dcd3ec047141d10f0f48f151c36e1af1d65ec6c65f732cea46a rns-0.6.1-py3-none-any.whl
 859  be6a4a6069f2d050e21582f2cf9d3bb59ed4040a0f07761a540bd752d90ea591 rnspure-0.6.1-py3-none-any.whl
 860  ```
 861  
 862  #### 2023-09-21: RNS β 0.6.0
 863  
 864  This release brings a few performance improvements, additions to the included utilities, and fixes a number of bugs.
 865  
 866  **Changes**
 867  - Added ability to run automatic probe responder on Transport Instances
 868  - Improved `rnprobe` utility
 869  - Improved AutoInterface peering on Android devices
 870  - Improved Transport performance
 871  - Improved path re-discovery when local nodes roam to other network segments
 872  - Updated various parts of the documentation
 873  
 874  **Bugfixes**
 875  - Fixed missing timeout check in `rncp`
 876  - Fixed missing link status check on `Identify()` call, which could lead to an unnecessary exception
 877  
 878  **Release Hashes**
 879  ```
 880  88a26b1593e82a628dab96dbe8820548aea0159235f730fa992bf1833db59246 rns-0.6.0-py3-none-any.whl
 881  bcee416e4fb52346d01f6e0c46b1cebf84b127cc516603367fc2ae00a4149fa2 rnspure-0.6.0-py3-none-any.whl
 882  ```
 883  
 884  ### 2023-09-19: RNS β 0.5.9
 885  
 886  This release brings major efficiency improvements to `Channel` and `Buffer` classes, adds a range of usability improvements to the included utilities and fixes a number of bugs.
 887  
 888  **Changes**
 889  - Improved `Channel` sequencing, retries and transfer efficiency
 890  - Added adaptive compression to `Buffer` class
 891  - Added `rnid` examples and documentation to manual
 892  - Added silent mode to `rncp`
 893  - Added remote fetch mode to `rncp`
 894  - Added allowed_identities file support to `rncp`
 895  - Added Transport Instance uptime to `rnstatus` output
 896  - Added channel CSMA parameter stats to RNode Interface `rnstatus` output
 897  - Added ability to set custom RNode OLED display address with rnodeconf
 898  
 899  **Bugfixes**
 900  - Fixed inadverdent AutoInterface multi-IF deque hit for resource transfer retries
 901  - Fixed invalid path for firmware hash generation while using extracted firmware to autoinstall in `rnodeconf`
 902  - Fixed various minor missing error checks
 903  - Fixed `rnid` status output bug
 904  
 905  **Release Hashes**
 906  ```
 907  207ab20bd68bab16b417fbd41a4ecdbcf1e2f6fa553d48df6c8fc181b6e84dac rns-0.5.9-py3-none-any.whl
 908  93f0965567dfc2c43f3d703481fe1a7d7b1b8d0b3837ad41c37f28a8af5c1acc rnspure-0.5.9-py3-none-any.whl
 909  ```
 910  
 911  ### 2023-09-14: RNS β 0.5.8
 912  
 913  This maintenance release contains a number of usability improvements to Reticulum and related tools.
 914  
 915  **Changes**
 916  - Various documentation updates
 917  - Improved path-resolution in mixed networks with roaming-mode nodes
 918  - Added channel load and airtime stats to `rnstatus` output
 919  
 920  **Release Hashes**
 921  ```
 922  27ba5cdc4724fc8c7211c3b504f097f6adf47f7b80775e6297e4c4e621ef6348 rns-0.5.8-py3-none-any.whl
 923  1ea1c949763c9478ec48f064f7f7864d9f859101ab91b44400879371f490800f rnspure-0.5.8-py3-none-any.whl
 924  ```
 925  
 926  ### 2023-08-14: RNS β 0.5.7
 927  
 928  This maintenance release contains a number of bugfixes and quality improvements to Reticulum and related tools.
 929  
 930  **Changes**
 931  - Added bytes input to destination hash convenience functions
 932  - Fixed possible invalid comparison in link watchdog job
 933  - Add option to `rnodeconf` to set baud rate when flashing
 934  - Added better explanation in `rnodeconf` when flashing fails
 935  - Fixed EEPROM dump directory in `rnodeconf`
 936  
 937  **Release Hashes**
 938  ```
 939  867fbb5c73c2a49a75e1f8f3e9f376b507b683328e26c64d4387acd0cc1dbbc7 rns-0.5.7-py3-none-any.whl
 940  7bab2865264b32208e023b5c4bbe88c37f51e3176ca4a8cf332d95f59a6d7f2c rnspure-0.5.7-py3-none-any.whl
 941  ```
 942  
 943  ### 2023-07-09: RNS β 0.5.6
 944  
 945  This maintenance release contains a few bugfixes.
 946  
 947  **Changes**
 948  - Fixed an issue in `rnodeconf` that prevented Heltec LoRa32 v2 boards from being flashed.
 949  - Fixed a typo in the `rnid` utility.
 950  
 951  **Release Hashes**
 952  ```
 953  255a5b4bac28326c6b2cc85f43b26dcb0606404a4abd2dfa8244937155838973 rns-0.5.6-py3-none-any.whl
 954  1510b6da4641ceaa4c599a142e498c7e2c1ae12035868f9db1c111e5600161e9 rnspure-0.5.6-py3-none-any.whl
 955  ```
 956  
 957  ### 2023-06-13: RNS β 0.5.5
 958  
 959  This maintenance release brings a single bugfix.
 960  
 961  **Changes**
 962  - Fixed a race condition for link initiators on timed out link establishments.
 963  
 964  **Release Hashes**
 965  ```
 966  4ae61d28bf981a7cb853c179e9de3b56b350d2dc984fb671a21d38c4ce5b449e rns-0.5.5-py3-none-any.whl
 967  ed417cbd3c90e9f1b68565a3411ca5c9bc936b495300fd1ace3c4a6414aabd5a rnspure-0.5.5-py3-none-any.whl
 968  ```
 969  
 970  ### 2023-05-19: RNS β 0.5.4
 971  
 972  This maintenance release brings a single bugfix.
 973  
 974  **Changes**
 975  - Fixed a potential race condition when timed-out link receives a late establishment proof a few milliseconds after it has timed out.
 976  
 977  **Release Hashes**
 978  ```
 979  71b42fe737da97a4b63bb227c29bb67854a7f003c9585f085b0ff68c8f460815 rns-0.5.4-py3-none-any.whl
 980  af6949d581445444f57cfca75756200e7c509a6fc66483d859716ce6a06064db rnspure-0.5.4-py3-none-any.whl
 981  ```
 982  
 983  ### 2023-05-19: RNS β 0.5.3
 984  
 985  This maintenance release brings a single, but important bugfix.
 986  
 987  **Changes**
 988  - Fixed a bug that could cause data corruption to occur over when using `Buffer` instances.
 989  
 990  **Release Hashes**
 991  ```
 992  f23c8d655c9e80a12a6728495aec56f19f27184d3d8e6b6ed6184b0e89d4be35 rns-0.5.3-py3-none-any.whl
 993  2c692a2153bb766a9dc2391340a06f429c13a75b86b746b69c6fcd5a4fe5ee33 rnspure-0.5.3-py3-none-any.whl
 994  ```
 995  
 996  ### 2023-05-12: RNS β 0.5.2
 997  
 998  This maintenance release brings a number of bugfixes and improvements.
 999  
1000  **Important!** This release breaks backwards compatibility with `Channel` and `Buffer` for all previous releases, due to the addition of compression and windowing.
1001  
1002  **Changes**
1003  - Added ability to trust external signing keys to `rnodeconf`
1004  - Added basic windowing to `Channel` and `Buffer`, improving performance over faster links
1005  - Added per-packet compression to `Channel`
1006  - Added automatic multi-interface duplicate deque to AutoInterface
1007  - Fixed received link packet proofs not resetting link watchdog stale timer
1008  - Fixed a missing exception isolation of packet delivery callbacks
1009  - Fixed resent packets not getting repacked
1010  
1011  **Release Hashes**
1012  ```
1013  f3b1e9cf39420ad74c2b5c81ad339fd2a548320c9f6925bad9b614feb4c9b9d7 rns-0.5.2-py3-none-any.whl
1014  8463f7365f179d02e7e4d4fe4afc69da4218ce40107305dfd06b9e6b29513e0f rnspure-0.5.2-py3-none-any.whl
1015  ```
1016  
1017  ### 2023-05-05: RNS β 0.5.1
1018  
1019  This maintenance release brings a number of bugfixes and improvements. Thanks to @VioletEternity, who contributed to this release!
1020  
1021  **Changes**
1022  - Removed dependency on netifaces module
1023  - Added ability to configure RNode display intensity to rnodeconf
1024  - Added preliminary rnodeconf flasher/autoinstaller support for T3 v1.0 boards
1025  - Fixed a bug that caused AutoInterface discovery scopes to fail
1026  - Fixed rnodeconf firmware extraction for unverifiable devices
1027  - Improved setting rnsd verbosity from command line
1028  - Improved support for shared instances on Windows
1029  - Improved rnodeconf support on Windows
1030  - Improved rnodeconf zip-file handling
1031  - Fixed a potentail race condition in announce queue handling for AutoInterface
1032  - Various minor bugfixes
1033  
1034  **Release Hashes**
1035  ```
1036  01d76e03f93e427d9c0b95ab5d07e84ed39047e912b8afa6d619a65ac6b5e05b rns-0.5.1-py3-none-any.whl
1037  2cfe431bec1160410b80bbcbf87eb2ab0d5abe5c6546f41eaf3f0f5faf9b2140 rnspure-0.5.1-py3-none-any.whl
1038  ```
1039  
1040  ### 2023-03-08: RNS β 0.5.0
1041  
1042  This release brings two major new additions to the Reticulum API: The Channel and Buffer classes, that provides reliable delivery, and streams over Reticulum. Thanks to @acehoss, @erethon, @gdt and @faragher, who contributed to this release!
1043  
1044  **Changes**
1045  - Added the Buffer class to the API
1046  - Added the Channel class to the API
1047  - Improved error messages for offline RNode flashing
1048  - Improved RNode reconnection when serial device disappears
1049  - Fixed embedded scope identifier handling for AutoInterface on BSD
1050  - Fixed AutoInterface not ignoring lo0 on BSD
1051  - Fixed a bug causing JSON output from rnstatus to fail
1052  - Fixed invalid installation of test suite into root module path
1053  - Added EPUB version of the documentation
1054  - Updated documentation
1055  
1056  **Release Hashes**
1057  ```
1058  0aaf8c0b0b58f07071de5ecd432f4d9cc176b9614419c828b81ad71aa7151624 rns-0.5.0-py3-none-any.whl
1059  f310a5192c2df7665339c5998ae13815a647283af75b95ad7acbee8c20989954 rnspure-0.5.0-py3-none-any.whl
1060  ```
1061  
1062  ### 2023-02-17: RNS β 0.4.9
1063  
1064  This maintenance release contains a number of bugfixes and minor improvements, along with a few additions to the API.
1065  
1066  **Changes**
1067  - Added JSON output mode to rnstatus
1068  - Added Link ID to response_generator callback
1069  - Added Link establishment rate calculation
1070  - Added get_establishment_rate call to Link API
1071  - Fixed a number of typos in programs and documentation
1072  - Fixed some broken links in documentation
1073  
1074  **Release Hashes**
1075  ```
1076  b44eaed796dcd194bec7a541aaeeb1685b07b2ffce068ca268841e6a8661717f rns-0.4.9-py3-none-any.whl
1077  a15f965a27d208493485724486eb6bc6268d699f2a22ae4fb816bb9b979330fc rnspure-0.4.9-py3-none-any.whl
1078  ```
1079  
1080  ### 2023-02-04: RNS β 0.4.8
1081  
1082  This release introduces the useful `rnid` utility, which makes it possible to use Reticulum Identities for offline file encryption, decryption, signing and validation. The IFAC system has also been significantly improved, and several outdated parts of the documentation was updated and fixed. Thanks to @Erethon and @jooray who contributed to this release!
1083  
1084  **Changes**
1085  - Added header and payload masking to the IFAC system
1086  - Added `rnid` utility for encrypting, decrypting, signing and validating with Reticulum Identities
1087  - Added Bluetooth pairing PIN output to `rnodeconf` utility
1088  - Fixed a bug in announce callback handling
1089  - Fixed a inconsistency in header flag handling since IFACs were introduced
1090  - Updated documentation and manual
1091  
1092  **Release Hashes**
1093  ```
1094  fbbd55ee43a68c18491f5deabed51085c46fadca7e1bda823ad455c2f7c95a51 rns-0.4.8-py3-none-any.whl
1095  335b0d5dd1d2aacd0d8810191aa09567ecf5d3aa990c446f3e3b1bbf7fce1387 rnspure-0.4.8-py3-none-any.whl
1096  ```
1097  
1098  ### 2023-01-14: RNS β 0.4.7
1099  
1100  This maintenance release adds support for using the `rnodeconf` utility to replicate RNode devices, and bootstrap device creation using only tools and software packages obtained from an RNode Bootstrap Console.
1101  
1102  **Changes**
1103  - Added the ability to use rnodeconf to bootstrap RNode creation without needing a connection to the Internet
1104  - Added ability for rnodeconf to extract firmwares from existing RNodes
1105  - Added ability for rnodeconf to use extracted firmwares for autoinstaller and updates
1106  - Updated documentation and manual
1107  
1108  **Release Hashes**
1109  ```
1110  7ea22be8f4cc9504d8a612c5589132351cc0c6b474899204afd71367ab3fb226 rns-0.4.7-py3-none-any.whl
1111  3dc337b80df37c247abc9cee06c3ecba0f908449005d0eb365c2a9577d689e57 rnspure-0.4.7-py3-none-any.whl
1112  ```
1113  
1114  ### 2022-12-23: RNS β 0.4.6
1115  
1116  This maintenance release brings two bugfixes.
1117  
1118  **Changes**
1119  - Fixed missing path invalidation on failed link establishments made from a shared instance client
1120  - Fixed a memory leak in link handling
1121  
1122  **Release Hashes**
1123  ```
1124  7f1b0b254dce5bb1bacc336b026dab2dda5859b43cb0f4ceed3f70ba825f8873 rns-0.4.6-py3-none-any.whl
1125  775c1b9b5bdf202524e50e58dc7c7bad9262ca3c16471cbfc6fb3a528e732460 rnspure-0.4.6-py3-none-any.whl
1126  ```
1127  
1128  ### 2022-12-22: RNS β 0.4.5
1129  
1130  This maintenance release significantly improves path rediscovery on roaming devices with multiple interfaces, and adds a few tweaks to interface handling, that are especially relevant on Android.
1131  
1132  **Changes**
1133  - Faster roaming path recovery for multiple interface non-transport instances
1134  - Fixed AutoInterface multicast echoes failing on interfaces with rolling MAC addresses on every re-connect
1135  - Added carrier change detection flag to AutoInterface
1136  - Adjusted loglevels for some items
1137  
1138  **Release Hashes**
1139  ```
1140  6757d5d815d4d96c45c181daf321447914c0e90892d43e142f2bd3fffacda9d9 rns-0.4.5-py3-none-any.whl
1141  11669065091d67e3abaddb0096e5c92fc48080692b5644559226b2e2e6721060 rnspure-0.4.5-py3-none-any.whl
1142  ```
1143  
1144  ### 2022-12-22: RNS β 0.4.4
1145  
1146  This maintenance release improves path response handling and log output.
1147  
1148  **Release Hashes**
1149  ```
1150  b0b59c25910151db0c2085d812bcc3d06cb930ddb8cd1e281b40cb592c1427eb rns-0.4.4-py3-none-any.whl
1151  fe29ce3eb9e55f6953312c8db8c350bd58a7777e8c8dffd5491b840254426332 rnspure-0.4.4-py3-none-any.whl
1152  ```
1153  
1154  ### 2022-12-22: RNS β 0.4.3
1155  
1156  This maintenance release brings faster path rediscovery and improves hardware support on Android, along with a few other minor tweaks and bugfixes.
1157  
1158  **Changes**
1159  - Added automatic path rediscovery on failed link establishments
1160  - Added signature validation for link request proof packets for every transport hop
1161  - Improved RNode hotplug support over Bluetooth on Android
1162  - Improved Resource transfer sequencing and retry handling
1163  - Fixed driver initialisation for Qinheng CH34x serial chips on Android
1164  - Updates to documentation
1165  
1166  **Release Hashes**
1167  ```
1168  c035c2e21b8b207b00937ad57e947c7b4f17a02fe4f253d6e1fcc000479019b7 rns-0.4.3-py3-none-any.whl
1169  e367576893bada72329ad195ebaa1e295bbca8897241f258428e1957d2da9a55 rnspure-0.4.3-py3-none-any.whl
1170  ```
1171  
1172  ### 2022-11-24: RNS β 0.4.2
1173  
1174  This maintenance release brings a number of minor improvements, and fixes a few bugs related to hardware support on Android.
1175  
1176  **Changes**
1177  - Fixed AutoInterface roaming not working on Android devices that rotate Ethernet and WiFi MAC addresses on every physical connection change
1178  - Fixed RNode interface not working over Bluetooth on Android versions 10 and below
1179  - Greatly improved startup time for programs connecting to a shared Reticulum instance on slow or resource-limited systems
1180  - Improvements to internal utility-functions and logging
1181  - Added a public development roadmap
1182  - Updates and fixes to the documentation
1183  
1184  **Release Hashes**
1185  ```
1186  ba541ead4194e7ae3e295bf2c84b609041e4dc82e1b5bfce0885396ee090e37f rns-0.4.2-py3-none-any.whl
1187  a352cb8d0862a1a23e66bda08357bf7e725b540bbdd3bb3b32914f3c0bb99a05 rnspure-0.4.2-py3-none-any.whl
1188  ```
1189  
1190  ### 2022-11-03: RNS β 0.4.1
1191  
1192  This maintenance release fixes few bugs, and improves I2P interface recovery on unresponsive I2P tunnels.
1193  
1194  **Changes**
1195  - Added better I2P tunnel state visibility to rnstatus util
1196  - Improved I2P recovery time on unresponsive tunnels
1197  - Improved I2P tunnel state detection
1198  - Fixed missing IFAC identity init on spawned TCP clients
1199  - Fixed missing IFAC identity init on spawned I2P interfaces
1200  - Fixed missing check for socket state on I2P interfaces
1201  
1202  **Release Hashes**
1203  ```
1204  e28643a7396c3a41d859eb7d3a14f166e648003da36fc49094561fbf49c04b7e rns-0.4.1-py3-none-any.whl
1205  feaa326545c928f3d5dc7b6fdb31975517af15da0751927491c4ac23dac36edc rnspure-0.4.1-py3-none-any.whl
1206  ```
1207  
1208  ### 2022-11-03: RNS β 0.4.0
1209  
1210  This maintenance release fixes minor bug in the rnodeconf utility.
1211  
1212  **Changes**
1213  - Fixed incorrect storage location for local firmware cache in the rnodeconf utility
1214  
1215  **Release Hashes**
1216  ```
1217  16dda7b087cff0c21b7b0460798cb433fc96f27d058eb7d50e38898a1a1e49c4 rns-0.4.0-py3-none-any.whl
1218  5f137cfd42ee9d9e7ae43b25d25849bd087145b7edf2c29ffdfd93d57ab34284 rnspure-0.4.0-py3-none-any.whl
1219  ```
1220  
1221  ### 2022-11-03: RNS β 0.3.19
1222  
1223  This release adds support for Bluetooth-connected RNode interfaces, and includes a few improvements to the rnodeconf utility.
1224  
1225  **Changes**
1226  - Added support for RNode interfaces connected over Bluetooth on Linux and Android
1227  - Improved rnodeconf install and update timing, which fixes installs sometimes failing on T-Beam devices
1228  
1229  **Release Hashes**
1230  ```
1231  9d5bee8eb9b2160dab985017bfa3e3db9c35033cfae97653a9fa8faa6064f228 rns-0.3.19-py3-none-any.whl
1232  0f0996b5e401ca5d4e91080df3d6de326fc591164c9e6932a2eb79f1d2b8d375 rnspure-0.3.19-py3-none-any.whl
1233  ```
1234  
1235  ### 2022-11-03: RNS β 0.3.18
1236  
1237  This maintenance release includes the `rnodeconf` utility directly in the `rns` package, and brings a few improvements to interface handling and hardware interfacing.
1238  
1239  **Important!** The minimum supported RNode firmware version for this release is `1.51`, and the firmware will needs to be updated with `rnodeconf` version `2.0.0` or greater, since earlier versions won't be able to fetch the new release files.
1240  
1241  **Changes**
1242  - Added `rnodeconf` utility
1243  - Added more options for controlling log output
1244  - Added ability to write to the external framebuffer of RNode devices
1245  - Improved teardown handling on RNode interfaces
1246  
1247  **Release Hashes**
1248  ```
1249  dc0c56950b85be763270695faf441029f7e6c31cdc44447c6c470e09c734aa45 rns-0.3.18-1-py3-none-any.whl
1250  760bfc52419a8c45a420df41c40a1bf96bd494dabd7efe461c7907b152bbf39c rnspure-0.3.18-1-py3-none-any.whl
1251  ```
1252  
1253  ### 2022-11-03: RNS β 0.3.17
1254  
1255  This maintenance release fixes a regression in the 0.3.16 release.
1256  
1257  **Changes**
1258  - Fixed an incorrect import that inadverdently caused Android-specific interfaces to be used on non Android operating systems.
1259  
1260  **Release Hashes**
1261  ```
1262  SHA256 0e8327461e2d39f859059cc14e94fb33f21e1186c422bb766950f42ca1387656 rns-0.3.17-py3-none-any.whl
1263  SHA256 9e31160cc38e0d5531460d5eca7b3f6e6d8c3b2a7afb04338ee72cc488a2ba18 rnspure-0.3.17-py3-none-any.whl
1264  ```
1265  
1266  ### 2022-10-20: RNS β 0.3.16
1267  
1268  This maintenance release fixes a single bug that prevented running RNS in Termux (and similar) on Android.
1269  
1270  **Changes**
1271  - Fixed missing imports and module checks for API-limited environments on Android
1272  
1273  **Release Hashes**
1274  ```
1275  SHA256 dc4202302b1f1503a0f1c8fef7123b31f7d5d7131ae5b9f988064ebe22e29ed8 rns-0.3.16-py3-none-any.whl
1276  SHA256 127624d2592745602d4a056c347fa6f5989f049275a5b8bfa97c296af9bc497f rnspure-0.3.16-py3-none-any.whl
1277  ```
1278  
1279  ### 2022-10-20: RNS β 0.3.15
1280  
1281  This maintenance release primarily adds support for external hardware interfaces on Android. A number of bugs have also been fixed, and improvements made to logging output consistency.
1282  
1283  **Changes**
1284  - Added support for RNode interfaces on Android
1285  - Added support for KISS interfaces on Android
1286  - Added support for Serial interfaces on Android
1287  - Added AutoInterface support for kernel network devices that rotate MAC addresses on roaming and/or reconnects
1288  - Updated various helper functions
1289  - Minor log output cleanup and fixes
1290  - Fixed missing lookup for locally running destinations in Identity.recall() when running as a shared transport instance
1291  - Fixed missing announce cap property on hot-plugged interfaces
1292  - Fixed incorrect behaviour in announce processing for instance-local destinations to roaming- or boundary-mode interfaces
1293  
1294  **Release Hashes**
1295  ```
1296  SHA256 c56f32dbfd10fae1b5d2dddafe7d2a0f2127908827a71fce9e43fd051ea453bc rns-0.3.15-py3-none-any.whl
1297  SHA256 597d6df05b3586eaa1515c0215cec30d7a018a209e7900634345c39514efcd18 rnspure-0.3.15-py3-none-any.whl
1298  ```
1299  
1300  ### 2022-10-07: RNS β 0.3.14
1301  
1302  This maintenance release brings a few improvements, including optimised announce packet structure and updated documentation.
1303  
1304  **Please note!** While this is a small maintenance release, it includes changes to packe structure that breaks backwards compatibility with all previous RNS versions.
1305  
1306  **Changes**
1307  - Optimised announce packet structure
1308  - Reject mismatching public keys on hash collision.
1309  - Minor updates to documentation
1310  
1311  **Release Hashes**
1312  ```
1313  SHA256 b761efc24d20c5719817bfefbbe8ce69f7c91d65bb8273cb02578f77d6f88bc5 rns-0.3.14-py3-none-any.whl
1314  SHA256 cc24a1f010431c8f193ec0ffc6dccade614a5be40c47ac12e3e9ae60b52f046e rnspure-0.3.14-py3-none-any.whl
1315  ```
1316  
1317  ### 2022-10-04: RNS β 0.3.13
1318  
1319  This maintenance release includes a single but important bugfix.
1320  
1321  **Changes**
1322  - Fixed missing hash construction step in announce emission and validation
1323  
1324  **Release Hashes**
1325  ```
1326  SHA256 d6c8a7cb8ea7edc99800df92abff246e8159f2d9c9f1a2b57672385d49647c90 rns-0.3.13-py3-none-any.whl
1327  SHA256 c07c28942e374342c4e807a0b6e81d831737b87cf59651670b8c1c191030a326 rnspure-0.3.13-py3-none-any.whl
1328  ```
1329  
1330  ### 2022-09-30: RNS β 0.3.12
1331  
1332  This maintenance release includes a fix to the [serious security flaw discussed here](https://github.com/markqvist/Reticulum/discussions/103). **Please Note!** Updating to RNS 0.3.12 will intentionally break backwards compatibility with all previous verstions for link establishment. It is recommended to upgrade all your systems to 0.3.12 as soon as possible.
1333  
1334  Additionally, this release brings a range of small, but very useful improvements to reliability and user experience, along with a significant update to the documentation material.
1335  
1336  **Changes**
1337  - Fixed a [serious security flaw](https://github.com/markqvist/Reticulum/discussions/103) in link establishment key exchanges
1338  - Allow hot-plug of RNode devices
1339  - Better detachment handler for TCP clients on shutdown
1340  - Implemented better config directory path handling
1341  - Clarifications and improvements to various documentation chapters
1342  - Improved writing quality of documentation, courtesy of @huyndao
1343  - Improved overall presentation of documentation and manual
1344  - Improved reliability of data persistence in case of unexpected shutdowns or hardware crashes
1345  - Added rnsd warning on start as client
1346  - Fixed a rendering bug in the rnpath utility
1347  - Added initial connection timeout configuration option to TCP Client interfaces
1348  - Brought deprecated native python API calls up to date
1349  
1350  **Release Hashes**
1351  ```
1352  SHA256 74a4881ebf8d805bffb43efef91769b1cbb87affe56ac630355946c7484cffbf rns-0.3.12-py3-none-any.whl
1353  SHA256 03429122b3b4133667632ba2404df7bbf57ea5df1b9c815d7608b1d59cd29a76 rnspure-0.3.12-py3-none-any.whl
1354  ```
1355  
1356  ### 2022-07-09: RNS β 0.3.11
1357  
1358  This maintenance release contains a single but important bug fix in resource transfers.
1359  
1360  **Changes**
1361  - Fixed a an incorrect size calculation for resource advertisements, that would lead to resources of specific sizes failing with an MTU error.
1362  
1363  **Release Hashes**
1364  ```
1365  SHA256 7c03a003326bcd127226414b08cf48f87bcc6b88a7279c52e28415315668543c rns-0.3.11-py3-none-any.whl
1366  SHA256 1a6aaa3ba370ece28cc975ba94b0461c61497cf0797f92662472e0ec20576cb1 rnspure-0.3.11-py3-none-any.whl
1367  ```
1368  
1369  ### 2022-07-08: RNS β 0.3.10
1370  
1371  This maintenance release contains a single but important bug fix for systems running Reticulum Transport Instances.
1372  
1373  **Changes**
1374  - Fixed a potential race condition in link establishment flow, that could lead to links not being established over hops with very low latency.
1375  
1376  **Release Hashes**
1377  ```
1378  SHA256 1c9fb56b967aed507694e6b5d5fca7a89b022cad9fa2058d248e359dc150fba7 rns-0.3.10-py3-none-any.whl
1379  SHA256 8eae07f9e6241ea1f3778430456225dee3ef73bb1c4df5e5362dd00226404628 rnspure-0.3.10-py3-none-any.whl
1380  ```
1381  
1382  ### 2022-07-05: RNS β 0.3.9
1383  
1384  This release expands the address space of Reticulum to 128 bits, and brings improvements to the documentation, along with a few bugfixes and updates.
1385  
1386  **Changes**
1387  - Expanded address space to 128 bits
1388  - Updated documentation
1389  - Improved rnx interactive mode
1390  - Improved readme file
1391  - Added reticulum.network website
1392  - Added periodic cache cleaning
1393  - Fixed a bug in the --no-auth option in rncp
1394  
1395  **Release Hashes**
1396  ```
1397  SHA256 892005e95fc9eda4c4c5d9f94dd33cdc27d3ac6e228d1b0b2519e35069951b86 rns-0.3.9-1-py3-none-any.whl
1398  SHA256 cb7d873c51c746ecdb8963a6a7a0e8d010fb6c61ee785c5e97376d3779a7bae8 rnspure-0.3.9-1-py3-none-any.whl
1399  ```
1400  
1401  ### 2022-06-22: RNS β 0.3.8
1402  
1403  This release brings big improvements to compatibility with various system types, along with several convenient new features, and a lot of tuning, optimisation and stability improvements. In a continued effort, the documentation has also been updated, restructured, and had several new and informative sections added.
1404  
1405  **Changes**
1406  - Added ability to install and run RNS without any dependencies
1407  - Added backend abstraction for cryptographic primitives
1408  - Added pure-python implementations of all cryptographic primitives
1409  - Added accept option to Link API
1410  - Added several undocumented API calls to the documentation
1411  - Added option to filter interfaces to rnstatus utility
1412  - Added "Communications Hardware" chapter to the documentation
1413  - Improved multiple chapters and restructured documentation
1414  - Improved efficiency of Transport instances
1415  - Improved performance of Resource transfers
1416  - Improved Resource handling strategies over different physical link types
1417  - Improved link capacity and speed estimation calculations
1418  - Improved I2P interface error handling and stability
1419  - Tuned Resource and Link timeouts
1420  - Tuned TCP socket options for better reliability over intermittent links
1421  - Tuned I2P interface timeouts for better reliability over intermittent links
1422  - Fixed a missing check for zero-length packets on IFAC-enabled interfaces
1423  - Fixed a socket allocation leak in I2P interfaces
1424  - Added unit tests
1425  - Added performance profiling tools
1426  - Improved build system
1427  
1428  Release SHA-256 for `rns-0.3.8-py3-none-any.whl` is `fdb53aba14840edf3d71dde1a745f319e7f60d6993851b7651bf8ba3d5c53ba7`
1429  Release SHA-256 for `rnspure-0.3.8-py3-none-any.whl` is `b0eb004c3725bc20496b1c855e7d22729d8a39fd0cde957ab95aa8c7e13ee3a4`
1430  
1431  ### 2022-05-29: RNS β 0.3.7
1432  
1433  This release comes with a big upgrade to reliability and resilience, with lots of small bug fixes and improvements, along with some significant new additions and features. The documentation and API reference has also seen several improvements for clarity.
1434  
1435  Users of I2P interfaces will see big improvements in reliability with better handling of errors from the I2P SAM API, and much better automatic recovery when I2P connectivity is intermittent.
1436  
1437  Reticulum is now able to perform network-wide discovery of unknown paths, using the new Gateway interface mode. The stability of established links has also been improved by using a better timeout calculation method.
1438  
1439  It is also worth mentioning the addition of the two new utilities, `rncp` and `rnx`, that allow you to transfer files to remote systems, and perform remote command execution.
1440  
1441  *Please Note!* For using 64-bit IFACs on RNode hardware, your RNodes must be running at least firmware version 1.28.
1442  
1443  **Changes**
1444  - Added gateway interface mode
1445  - Added `rncp` utility for transferring files to remote destinations
1446  - Added `rnx` utility for remotely executing commands and returning output
1447  - Implemented unknown path discovery
1448  - Implemented recursive path request loop avoidance
1449  - Implemented bandwidth cap for recursive path requests
1450  - Improved Link authentication callbacks
1451  - Improved Link stale time calculations and process
1452  - Improved error detection and handling in I2P interfaces
1453  - Improved automatic recovery and reliability on intermittent I2P interfaces
1454  - Added request size to receipts, and updated relevant API documentation
1455  - Added default identity storage folder
1456  - Fixed deprecated options in libi2p's asyncio calls
1457  - Fixed I2P controller startup when event loop is not immediately ready
1458  - Fixed bug in conditional resource acceptance callback
1459  - Fixed an invalid interface mode check
1460  - Fixed missing recursive progress callback allocation in segmented resource transfer
1461  - Fixed expired AP and Roaming interface mode paths not being removed at the correct time
1462  - Fixed announce rate targets not being set on I2PInterface peers
1463  - Fixed naming conflict in resource advertisements
1464  - Fixed link stale time calculation on newly created links without any actual traffic
1465  - Fixed a bug that caused large packets (over 492 bytes) with IFAC enabled to be dropped on RNode hardware
1466  - Improved output of `rnstatus` utility
1467  - Improved Destination and Link API documentation
1468  - Updated documentation and readme
1469  
1470  Release SHA-256 for Python Wheel is `2cd9a584d6b13bb478a43b49b7de3f2a8270c4b8979666b1ca40cd81daacbf42`
1471  
1472  ### 2022-05-17: RNS β 0.3.6
1473  
1474  This release adds a number of improvements, a new interface type, and some very useful new interface modes.
1475  
1476  **Changes**
1477  - Added PipeInterface, create interfaces with any program over stdio
1478  - Added "roaming" and "boundary" interface modes
1479  - Added per-interface announce rate control
1480  - Added ability to drop announce queues to rnpath utility
1481  - Added announce rate information output to rnpath utility
1482  - Improved announce queue processing
1483  - Improved several documentation chapters
1484  - Improved logging output
1485  
1486  ### 2022-04-28: RNS β 0.3.5
1487  
1488  This release brings major improvements and upgrades to Reticulum, along with better documentation and improved usability of the bundled utilities.
1489  
1490  **Changes**
1491  - Greatly improved convergence time. Even on huge networks, newly created destinations become globally reachable in less than a minute.
1492  - New announce propagation mechanism allows flexible scalability. Extremely slow network segments can now interconnect seamlessly with huge, high-bandwidth networks while still prioritising end-to-end connectivity for local nodes.
1493  - Reticulum can now scale to huge and complex networks with up to 128 hops, and billions of active endpoints.
1494  - Added virtual network segmentation for running multiple virtual networks over the same physical channel.
1495  - Added interface authentication for creating private access network interfaces and access points.
1496  - Updated documentation in accordance with current implementation of announce propagation mechanism.
1497  - Updated several outdated documentation chapters.
1498  - Added documentation for new interface features.
1499  - The output display of the rnstatus utility has been greatly improved.
1500  - Added ability to drop paths to the rnpath utility.
1501  - Added path table display to rnpath utility.
1502  - Added interface rate determination and estimation.
1503  - Added configurable bandwidth allocation for announce traffic.
1504  - Improved and cleaned logging output.
1505  - Various Transport optimisations.
1506  - Improved AutoInterface peering timing.
1507  - Updated manual in accordance with release.
1508  - Fixed a possible race condition in Transport startup when a local shared instance was restarted and apps reconnected.
1509  
1510  ### 2022-03-28: RNS β 0.3.4
1511  
1512  This is a small maintenance release with a bugfix and some documentation and reliability improvements.
1513  
1514  **Changes**
1515  - Fixed https://github.com/markqvist/Reticulum/issues/18 that could potentially cause a routing loop if the API was used in an unintended way
1516  - Improved cryptography API compatibility
1517  - Improved documentation
1518  
1519  ### 2022-02-26: RNS β 0.3.3
1520  
1521  This release adds major new functionality to Reticulum, including new connectivity options, improves stability, simplifies configuration and fixes a few bugs.
1522  
1523  **Improvements**
1524   - Added the I2P Interface to Reticulum
1525   - Added I2P tunneling support for TCP interfaces
1526   - Improved recovery of AutoInterface on underlying medium carrier loss
1527   - Improved AutoInterface timeouts and timing
1528   - Enabled the "outbound" interface option as on by default
1529   - Added the "Access Point" interface mode
1530   - Simplified default configuration
1531   - Added verbose configuration example to the "rnsd" program
1532   - Improved documentation and manual
1533   - Fixed a potential race condition in resource assembly
1534   - Fixed a reference error in TCP interfaces
1535   - Fixed a configuration keyword error
1536  
1537  ### 2022-01-28: RNS β 0.3.2
1538  
1539  This maintenance release adds support for using a much wider range of devices as RNode LoRa interfaces with Reticulum, and also contains a few bugfixes and improvements.
1540  
1541  **Important!** From this release, RNodes used with Reticulum must have at least firmware version 1.26 installed, due to the new multiplatform RNode support.
1542  
1543  **Improvements**
1544   - Added full support for RNodes based on ESP32 and ATmega2560 boards
1545   - Fixed a bug in TCP interfaces on macOS
1546   - Updated documentation and manual
1547  
1548  ### 2022-01-26: RNS β 0.3.1
1549  
1550  This is a small maintenance and update release of Reticulum, including a few improvements. It also adds support for using ESP32-based T-Beam devices.
1551  
1552  Improvements:
1553   - Added support for using T-Beam devices using the RNodeInterface
1554   - Improved AutoInterface on Android
1555   - Improved platform handling
1556   - Improved malformed packet handling
1557  
1558  ### 2021-12-11: RNS β 0.3.0
1559  
1560  This is a major release of Reticulum, including a range of stability and performance improvements, along with important new features, expanding the connectivity of Reticulum.
1561  
1562  An important improvement in this release is the addition of the AutoInterface, that will now be configured as the default interface on new installs. This interface automatically meshes with other Reticulum peers over any available system network devices, and doesn't require any existing IP infrastructure like a DHCP server or a router. For more information, consult the relevant section of the manual.
1563  
1564  **Improvements**
1565   - Added new AutoInterface as default interface for new installs
1566   - Serial port interfaces now automatically attempt to reconnect devices that are unplugged and replugged
1567   - Added support for KISS over TCP in the TCPClientInterface
1568   - Added support for running Reticulum as a systemd service
1569   - Initial support for the Android operating system
1570   - Added documentation for installing Reticulum on Android in Termux
1571   - Improved documentation and manual
1572   - Better path request handling for shared instances
1573   - Better shutdown handling on external interrupts
1574   - Many small stability and reliability improvements
1575   - Fine-tuned various timing parameters for different link types
1576  
1577  ### 2021-10-15: RNS β 0.2.9
1578  
1579  This beta release adds the fundamentals of RSSI and SNR functionality. It also implements timing improvements, allowing Reticulum to function on even lower bitrate physical links.
1580  
1581  **Improvements**
1582   - Added RSSI and SNR reporting on supported interfaces
1583   - Added RSSI and SNR to rnprobe utility
1584   - Added RSSI and SNR to Echo example
1585   - Support for physical layer throughput down to 500 bits per second.
1586   - Improved callback handling
1587  
1588  ### 2021-10-10: RNS β 0.2.8
1589  
1590  This beta release brings a single, but important improvement. Paths are now updated much more fluidly for peers moving around the network.
1591  
1592  Since updates were made to how tunnels and path table entries are represented in this release, it is recommended to delete the following files on Transport Nodes:
1593  
1594  ~/.reticulum/storage/destination_table
1595  ~/.reticulum/storage/packet_hashlist
1596  ~/.reticulum/storage/tunnels
1597  ~/.reticulum/storage/cache/*
1598  
1599  The files will be recreated when Reticulum is started.
1600  
1601  **Improvements**
1602   - Improved path updates for peers moving around the network
1603  
1604  ### 2021-10-08: RNS β 0.2.7
1605  
1606  This beta release brings a range of stability improvements and one bugfix.
1607  
1608  **Improvements**
1609   - Improved output of the rnstatus utility
1610   - Improved shared instance and local client handling
1611   - Improved documentation
1612   - Improved path restoration on tunnels
1613   - Added log rotation
1614  
1615  **Fixed bugs**
1616   - Fixed incorrect interface detachment on TCP client interfaces
1617  
1618  ### 2021-09-25: RNS β 0.2.6
1619  
1620  This beta release brings a range of improvements and a few bugfixes.
1621  
1622  **Improvements**
1623   - Added the "rnsd" utility for running Reticulum as a service
1624   - Added the "rnstatus" utility for viewing interface status
1625   - Added the "rnpath" utility for path lookups
1626   - Added the "rnprobe" utility for testing connectivity
1627   - Documentation has been improved and expanded
1628   - Improved shutdown handling for shared instances
1629   - Improved default configuration
1630   - Improved recovery of TCP interfaces over unreliable links
1631  
1632  **Fixed bugs**
1633   - Fixed a bug in reverse table culling
1634   - Fixed a regression in TCP interface client spawner
1635  
1636  ### 2021-09-18: RNS β 0.2.5
1637  
1638  This beta release brings a range of improvements and bugfixes.
1639  
1640  **Improvements**
1641   - Added endpoint tunneling for path restoration over intermittent or roving link layer connections.
1642   - Added ability for TCP client interfaces to automatically reconnect if TCP socket drops.
1643   - Improved link teardown handling.
1644   - Improved interface error handling on non-recoverable / hardware errors.
1645  
1646  **Fixed bugs**
1647   - Fixed a bug that could cause path table entries to be culled two times in rare cases.
1648   - Fixed a bug that could lead to the "outgoing" directive of interface configuration entries not being parsed correctly.
1649  
1650  ### 2021-09-11: RNS β 0.2.4
1651  
1652  This beta release brings a range of improvements and bugfixes.
1653  
1654  **Improvements**
1655   - Increased link MDU from 415 to 431 bytes by optimising transfer of Fernet tokens.
1656   - All data lengths are now calculated dynamically from Reticulums base MTU, laying the groundwork for dynamic MTU interoperability.
1657   - Disabled option to allow unencrypted links.
1658   - Improved documentation.
1659   - Improved request timeouts and handling.
1660   - Improved link establishment.
1661   - Improved resource transfer timing. 
1662  
1663  **Fixed bugs**
1664   - Fixed a race condition in inbound proof handling.
1665   - Fixed sequencing errors caused by duplicate HMU/request packets not being filtered.
1666  
1667  ### 2021-08-29: RNS β 0.2.3
1668  
1669  This beta release brings a range of improvements and bugfixes.
1670  
1671  **Improvements**
1672   - Improved resource handling.
1673   - Improved timeout calculation for packets, links, resources and requests.
1674   - Improved announce handling for shared instances.
1675   - Improved default configuration template.
1676   - Added example "Speedtest".
1677  
1678  **Fixed bugs**
1679   - Fixed an issue that caused request timeout even though response had occurred.
1680   - Fixed an issue that caused identity files to be written incorrectly.
1681   - Fixed resource sequencing errors not being handled gracefully.
1682  
1683  ### 2021-08-21: RNS β 0.2.2
1684  
1685  This beta release brings several new features to Reticulum along with two bugfixes.
1686  
1687  IMPORTANT! This version breaks wire-format compatibility with all previous versions of Reticulum. You must update *all* of your nodes at the same time.
1688  
1689  **New features**
1690   - Link initiators can now identify to the remote peer over the link, once it has been set up. This can be used for authentication, amongst other things.
1691   - Requests and responses of arbitrary sizes can now be carried out over links.
1692   - UDP and TCP interfaces can now be bound to network device names (eth0, wlan0, etc.) instead of manually specifying listen IPs.
1693  
1694  **Fixed bugs**
1695   - Fixed a race condition in outbound transport packet filtering.
1696   - Fixed an issue where local UDP broadcast echoes could get processed as inbound packets.
1697  
1698  ### 2021-05-20: RNS β 0.2.1
1699  
1700  This beta release sees significant improvements to bandwidth utilization and efficiency, while improving security by dropping RSA and moving completely to Curve25519.
1701  
1702  - All asymmetric cryptography migrated to X25519/Ed25519. This has greatly improved efficiency and reduced protocol overhead significantly.
1703  - Work has continued on the documentation, and the "Understanding Reticulum" chapters have been improved significantly in this release.
1704  - Class methods dealing with setting callbacks have been renamed to be more intuitive.
1705  
1706  As a few examples of the improved efficiency, a complete link establishment now only costs 240 bytes, down from 409 in the previous RSA version. An announce takes up 151 bytes vs 323.
1707  
1708  ### 2021-05-18: RNS β 0.2.0
1709  
1710  This is the first beta release of RNS. This release also marks the publication of the Reticulum documentation, manual, and API documentation. All core features of Reticulum are now implemented, functional and ready to use in external programs. The wire-format and API will only change if there is a very good reason, though internals are still likely to be altered and optimised, and features are likely to be added.
1711  
1712  ### 2021-05-13: RNS α 0.1.9
1713  
1714  This was a pre-release alpha version. No changelog available.
1715  
1716  ### 2020-08-13: RNS α 0.1.8
1717  
1718  This was a pre-release alpha version. No changelog available.
1719  
1720  ### 2020-08-13: RNS α 0.1.7
1721  
1722  This was a pre-release alpha version. No changelog available.
1723  
1724  ### 2020-06-10: RNS α 0.1.6
1725  
1726  This was a pre-release alpha version. No changelog available.
1727  
1728  ### 2020-06-09: RNS α 0.1.5
1729  
1730  This was a pre-release alpha version. No changelog available.
1731  
1732  ### 2020-05-29: RNS α 0.1.4
1733  
1734  This was a pre-release alpha version. No changelog available.
1735  
1736  ### 2020-05-21: RNS α 0.1.3
1737  
1738  This was a pre-release alpha version. No changelog available.
1739  
1740  ### 2020-05-15: RNS α 0.1.2
1741  
1742  This was a pre-release alpha version. No changelog available.
1743  
1744  ### 2020-05-14: RNS α 0.1.1
1745  
1746  This was a pre-release alpha version. No changelog available.
1747  
1748  ### 2020-05-12: RNS α 0.1.0
1749  
1750  This was a pre-release alpha version. No changelog available.
1751  
1752  ### 2020-04-28: RNS α 0.0.9
1753  
1754  This was a pre-release alpha version. No changelog available.
1755  
1756  ### 2020-04-28: RNS α 0.0.8
1757  
1758  This was the first publicly available pre-release alpha of Reticulum.
1759  
1760  ### 2016-05-29: Inintial Repository Commit
1761  
1762  The first commit to the Reticulum reference implementation was 9a9630cfd29e11ace3f12716ddb4dff0e5419b4b, which occurred on Sunday, the 29th of May 2016.