Skip to main content

Crate rns_net

Crate rns_net 

Source
Expand description

rns-net: Network node for Reticulum.

Drives rns-core::TransportEngine with real TCP/UDP sockets and threads. Reads standard Python RNS config files, opens TCP server/client, UDP, and Local interfaces, persists identity and known destinations.

Re-exports§

pub use common::time;
pub use common::config;
pub use common::compressor;
pub use local_ratchet::FileRatchetStore;
pub use local_ratchet::LocalRatchetStore;
pub use local_ratchet::LocalRatchets;
pub use local_ratchet::MemoryRatchetStore;
pub use common::destination;
pub use config::RnsConfig;
pub use destination::AnnouncedIdentity;
pub use destination::Destination;
pub use destination::GroupKeyError;
pub use driver::BackbonePeerPoolSettings;
pub use driver::AnnounceRateDefaults;
pub use driver::Callbacks;
pub use event::BackbonePeerHookEvent;
pub use event::BackbonePeerPoolMemberStatus;
pub use event::BackbonePeerPoolStatus;
pub use event::BackbonePeerStateEntry;
pub use event::BlackholeInfo;
pub use event::Event;
pub use event::HookInfo;
pub use event::InterfaceStatsResponse;
pub use event::LinkDatagramError;
pub use event::LinkInfoEntry;
pub use event::LocalDestinationEntry;
pub use event::NextHopResponse;
pub use event::PathTableEntry;
pub use event::QueryRequest;
pub use event::QueryResponse;
pub use event::RateTableEntry;
pub use event::ResourceInfoEntry;
pub use event::RuntimeConfigApplyMode;
pub use event::RuntimeConfigEntry;
pub use event::RuntimeConfigError;
pub use event::RuntimeConfigErrorCode;
pub use event::RuntimeConfigSource;
pub use event::RuntimeConfigValue;
pub use event::SingleInterfaceStat;
pub use event::TrafficDetail;
pub use ifac::IfacState;
pub use interface::auto::AutoConfig;
pub use interface::auto::AutoFactory;
pub use interface::ax25_kiss::decode_ui_frame as decode_ax25_ui_frame;
pub use interface::ax25_kiss::encode_ui_frame as encode_ax25_ui_frame;
pub use interface::ax25_kiss::validate_address as validate_ax25_address;
pub use interface::ax25_kiss::Ax25KissFactory;
pub use interface::backbone::BackboneClientConfig;
pub use interface::backbone::BackboneClientInterfaceFactory;
pub use interface::backbone::BackboneConfig;
pub use interface::backbone::BackboneInterfaceFactory;
pub use interface::i2p::I2pConfig;
pub use interface::i2p::I2pFactory;
pub use interface::kiss_iface::Ax25Address;
pub use interface::kiss_iface::KissFactory;
pub use interface::kiss_iface::KissIfaceConfig;
pub use interface::local::LocalClientConfig;
pub use interface::local::LocalClientFactory;
pub use interface::local::LocalServerConfig;
pub use interface::local::LocalServerFactory;
pub use interface::pipe::PipeConfig;
pub use interface::pipe::PipeFactory;
pub use interface::registry::InterfaceRegistry;
pub use interface::rnode::RNodeConfig;
pub use interface::rnode::RNodeFactory;
pub use interface::rnode::RNodeMultiFactory;
pub use interface::rnode::RNodeSubConfig;
pub use interface::serial_iface::SerialFactory;
pub use interface::serial_iface::SerialIfaceConfig;
pub use interface::tcp::TcpClientConfig;
pub use interface::tcp::TcpClientFactory;
pub use interface::tcp_server::TcpServerConfig;
pub use interface::tcp_server::TcpServerFactory;
pub use interface::udp::UdpConfig;
pub use interface::udp::UdpFactory;
pub use interface::weave::parse_device_frame as parse_weave_device_frame;
pub use interface::weave::WdclFrame;
pub use interface::weave::WeaveConfig;
pub use interface::weave::WeaveFactory;
pub use interface::weave::WeaveInput;
pub use interface::weave::WeaveLogFrame;
pub use interface::weave::WeavePeerState;
pub use interface::weave::WeaveState;
pub use interface::install_socket_protector;
pub use interface::SocketProtector;
pub use interface::SocketProtectorGuard;
pub use interface::InterfaceConfigData;
pub use interface::InterfaceFactory;
pub use interface::StartContext;
pub use interface::StartResult;
pub use interface::SubInterface;
pub use link_manager::LinkManager;
pub use link_manager::LinkManagerAction;
pub use link_manager::RequestFailure;
pub use link_manager::RequestResponse;
pub use link_send::LinkSendError;
pub use link_send::LinkSendReceipt;
pub use link_send::LinkSendError as TransmissionError;
pub use link_send::LinkSendReceipt as TransmissionReceipt;
pub use link_send::PacketSendReceipt;
pub use management::ManagementConfig;
pub use node::ChannelSendError;
pub use node::IfacConfig;
pub use node::InterfaceConfig;
pub use node::NodeConfig;
pub use node::RnsNode;
pub use node::SendError;
pub use resource::ReceivedResourceFile;
pub use resource::ResourceReceiveMode;
pub use resource::ResourceTransferError;
pub use resource::ResourceTransferId;
pub use rpc::RpcAddr;
pub use rpc::RpcClient;
pub use rpc::RpcServer;
pub use serial::Parity;
pub use shared_client::SharedClientConfig;
pub use storage::FsRatchetStore;
pub use storage::KnownDestination;
pub use storage::RatchetCleanupStats;
pub use storage::RatchetEntry;
pub use storage::RatchetStore;
pub use storage::StoragePaths;

Modules§

announce_cache
Announce cache for disk persistence.
common
discovery
Interface Discovery protocol implementation.
driver
Driver loop: receives events, drives the TransportEngine, dispatches actions.
event
Event types for the driver loop — concrete sync instantiation.
hdlc
HDLC framing for TCP transport.
holepunch
ifac
IFAC (Interface Access Codes) — per-interface cryptographic authentication.
interface
Network interface abstractions.
kiss
KISS framing for serial/radio interfaces.
link_send
Runtime-independent transmission completion and bounded admission.
local_ratchet
Application-owned destination ratchets, separate from received public keys.
logging
Reticulum-compatible numeric logging levels and target filters.
management
Remote management — re-exports from common, tests kept here.
md5
MD5 hash function (RFC 1321) and HMAC-MD5 (RFC 2104).
node
RnsNode: high-level lifecycle management.
pickle
Minimal pickle codec (protocols 2-5).
profiling
Process-global live profiling.
remote_management
Client-side remote management helpers.
resource
Standard-library Resource streaming and disk-delivery types.
rnode_kiss
RNode-specific KISS protocol commands and streaming decoder.
rpc
RPC server and client for cross-process daemon communication.
serial
Serial port abstraction using libc termios.
shared_client
Shared instance client mode.
storage
Identity, known destinations, and received ratchet persistence.

Structs§

DestHash
A destination hash (truncated, 16 bytes).
IdentityHash
An identity hash (truncated SHA-256 of public key, 16 bytes).
InterfaceId
Opaque identifier for a network interface.
LinkId
A link identifier (16 bytes).
PacketHash
A full packet hash (SHA-256, 32 bytes).

Enums§

DestinationType
Destination type.
Direction
Destination direction.
ProofStrategy
Proof strategy for a destination.
TeardownReason
Reason a link was torn down.

Constants§

MODE_ACCESS_POINT
MODE_BOUNDARY
MODE_FULL
MODE_GATEWAY
MODE_INTERNAL
MODE_POINT_TO_POINT
MODE_ROAMING