reticulum @ 1.5.1
integrity
- size
- 12.3 MiB
- downloaded
- last checked
release notes
This release focuses on dataplane control, memory bounding and transport throughput, with adaptive ingress and egress control for interfaces, a new (and very efficient) zero-copy coalescing transmit buffer, an optimized HDLC deframer, and a range of other improvements to the inbound packet processing paths. It also introduces support for live profiling, and various new diagnostics output in rnstatus, along with a number of bug fixes and general improvements.
Changes
- Added adaptive dataplane egress control
- Added adaptive dataplane ingress control
- Added zero-copy coalescing transmit buffers to interfaces using the
BackboneInterfacebackend - Added early protocol violation checks for invalid frames
- Added transport implementation name and version to discovery information requirements
- Added full live profiling to the built-in
Profilerprimitive, by K8 - Added the
@RNS.Profiler.profiledecorator, by K8 - Added support for indefinitely running, reentrant profilers with bounded capture, by K8
- Added live profiling results output to
rnstatus, by K8 - Added PPS statistics to
rnstatus - Added interface MTU display to
rnstatus - Added interface TX drop statistics to
rnstatus - Added interface TX buffer size output to
rnstatus - Added throughput benchmarker to the test suite
- Added support for natively compiled module builds, and the ability to load compiled modules when available
- Added module compilation status reporting from in-wheel build information
- Added parity tests for HDLC, IFAC and HKDF against the legacy implementations
- Added shared medium hints to interfaces
- Improved memory and CPU consumption under high traffic loads
- Improved traffic class handling
- Optimized HKDF to ~5.7x performance, if this worries you, good; then see the full parity and standard vector test suite and read the code
- Optimized inbound and outbound IFAC handling to ~90x performance on large frames
- Optimized inbound packet processing by reducing lock acquisitions and path table contention
- Optimized lookups for pending and active links using hash maps for lookup operations
- Optimized announce validation by caching signature validation results, significantly lowering announce storm CPU load
- Optimized the HDLC deframer
- Reduced redundant packet hashing in inbound processing
- Tuned default inbound queue lengths and announce queuing
- Tuned automatic interface MTU configuration
- Fixed
Resourcetransfers failing when initialized from stream-based data sources that fell outsideMAX_EFFICIENT_SIZE - Fixed an invalid prefix stripping bug in the
rngitpage server (.somethingfiles not viewable) - Fixed RSSI/SNR reporting regression
- Fixed keepalive handling on non-epoll backends
- Fixed a bug in
rngitpage navigation content initialization order - Fixed the
rngitpage node not being able to serve in-tree downloads for large files - Fixed
rnstatusblocked IP listing including IPs that were actually not yet blocked - Fixed
rnstatustraffic totals counting the local shared instance inter-app transit in totals - Fixed various minor bugs in
rnsh,rnir, identity handling - Fixed a latent bug in the AES module, where an exception would not resolve it's exception description correctly, and instead raise another exception.
- Removed dead Python 2 code from
umsgpack
download
unix · zip
curl -fL -o 1.5.1.zip https://ratatoskr.space/pkg/reticulum/1.5.1.zip
printf '%s %s\n' 'e78d3c378742979f5d162cca39be37ab7dbbbc4d2c0e6427873650b0d143252c' '1.5.1.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/reticulum/1.5.1.zip"
$out = "1.5.1.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e78d3c378742979f5d162cca39be37ab7dbbbc4d2c0e6427873650b0d143252c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o 1.5.1.tar.gz https://ratatoskr.space/pkg/reticulum/1.5.1.tar.gz
printf '%s %s\n' '627c5da39318ff905bdb20f0ba38702d13fdd3cb7a698863033776bedaccd005' '1.5.1.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/reticulum/1.5.1.tar.gz"
$out = "1.5.1.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "627c5da39318ff905bdb20f0ba38702d13fdd3cb7a698863033776bedaccd005") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o 1.5.1.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.zip
printf '%s %s\n' 'e78d3c378742979f5d162cca39be37ab7dbbbc4d2c0e6427873650b0d143252c' '1.5.1.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.zip"
$out = "1.5.1.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e78d3c378742979f5d162cca39be37ab7dbbbc4d2c0e6427873650b0d143252c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o 1.5.1.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.tar.gz
printf '%s %s\n' '627c5da39318ff905bdb20f0ba38702d13fdd3cb7a698863033776bedaccd005' '1.5.1.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.tar.gz"
$out = "1.5.1.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "627c5da39318ff905bdb20f0ba38702d13fdd3cb7a698863033776bedaccd005") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| 1.5.1.zip | zip | 12.4 MiB |
blake3-24 f457d76c698b047ccb4c8a9dcf96f20996722453595a2137
sha256 e78d3c378742979f5d162cca39be37ab7dbbbc4d2c0e6427873650b0d143252c
sha1 5a0cdf139635003ac0e34c81e211b214a5039e20
|
| 1.5.1.tar.gz | tar.gz | 12.2 MiB |
blake3-24 f9d5be04f399f5563c12720fa8f4d73e635dc397218d4cd2
sha256 627c5da39318ff905bdb20f0ba38702d13fdd3cb7a698863033776bedaccd005
sha1 b0bd43a0bfeb6dd30b23de1da8388d32a622ec0d
|
install
bazel
http_archive(
name = "reticulum",
urls = ["https://ratatoskr.space/pkg/reticulum/1.5.1.tar.gz"],
integrity = "sha256-Ynxdo5MY/5Bb2yDwujhwLRP908t6aYhjAzd2vtrM0AU=",
strip_prefix = "reticulum-1.5.1",
)
zig
.url = "https://ratatoskr.space/pkg/reticulum/1.5.1.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "reticulum",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.tar.gz"],
integrity = "sha256-Ynxdo5MY/5Bb2yDwujhwLRP908t6aYhjAzd2vtrM0AU=",
strip_prefix = "reticulum-1.5.1",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/reticulum/1.5.1.tar.gz",