docs.rs failed to build nomadnet-rs-0.1.0
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
nomadnet-rs
Rust library for NomadNet node hosting and browsing over the Reticulum Network Stack.
Zero-application-logic dependencies — works with any RNS-based project.
Features
- Node hosting — serve
.mu(Micron) pages over RNS Link request/response - Node discovery — track announced NomadNet nodes from RNS transport
- Node browsing — fetch pages from remote NomadNet nodes via [
NomadBrowser] - Micron markup — fluent builder for NomadNet page content
nomadnet-serve Binary
The nomadnet-serve binary serves static .mu files from a folder as a NomadNet node. Enable the serve feature:
[]
= { = "0.1", = ["serve"] }
# Install from source
# Run
Drop .mu files in the pages directory. If no index.mu exists, one is auto-generated listing all available pages.
| Flag | Default | Description |
|---|---|---|
-p, --pages-dir |
. |
Directory containing .mu files |
--rns-config |
~/.config/reticulum/config |
RNS config file |
--identity |
~/.nomadnet-serve/identity |
Identity file path |
--node-name |
nomadnet-serve |
Node display name (for announces) |
--announce-interval |
600 |
Announce interval in seconds |
--watch |
off | Watch pages directory for changes |
--verbose |
off | Enable debug logging |
Quick Start (Library)
[]
= "0.1"
= "0.1"
= "0.1"
= "0.5"
Serve pages
use Arc;
use ;
use RnsNode;
let paths = ;
let nomad = new?;
let cache = nomad.page_cache;
let mut page = new;
page.heading;
page.text;
cache.set;
Build a Micron page
use MicronBuilder;
let mut page = new;
page.cache_directive;
page.heading;
page.divider;
page.bold;
page.text;
page.blank_line;
page.link;
Discover nodes
use ;
let mut directory = new;
// In your RNS callback:
Browse remote nodes
use ;
let browser = new;
let mut events = browser.events;
browser.fetch?;
// In your event loop:
if let Some = events.recv.await
Modules
| Module | Description |
|---|---|
[node] |
NomadNode + PageCache — serve pages via RNS Link request/response |
[micron] |
MicronBuilder — fluent API for NomadNet page markup |
[directory] |
NomadDirectory — track discovered NomadNet nodes from announces |
[browser] |
NomadBrowser — fetch pages from remote nodes |
[types] |
Shared types: NodeConfig, BrowseEvent, DirectoryEntry, NomadError |
Architecture Notes
- NomadNet uses RNS Link request/response (not LXMF messaging) on aspect
nomadnetwork.node - Page handlers run synchronously on the RNS driver thread — use
PageCacheto decouple async page generation from sync request handling - A built-in
/page/test.muhandler is always registered for connectivity debugging - Cache misses return auto-generated 404 pages
License
MIT