Skip to main content

rns_net/
lib.rs

1//! rns-net: Network node for Reticulum.
2//!
3//! Drives `rns-core::TransportEngine` with real TCP/UDP sockets and threads.
4//! Reads standard Python RNS config files, opens TCP server/client, UDP, and
5//! Local interfaces, persists identity and known destinations.
6
7pub mod hdlc;
8pub mod kiss;
9pub mod rnode_kiss;
10pub mod event;
11pub mod time;
12pub mod interface;
13pub mod driver;
14pub mod node;
15pub mod config;
16pub mod storage;
17pub mod ifac;
18pub mod serial;
19pub mod md5;
20pub mod pickle;
21pub mod rpc;
22pub mod announce_cache;
23pub mod link_manager;
24pub mod management;
25pub mod shared_client;
26pub mod destination;
27pub mod holepunch;
28
29pub use driver::Callbacks;
30pub use event::{
31    Event, QueryRequest, QueryResponse,
32    InterfaceStatsResponse, SingleInterfaceStat,
33    PathTableEntry, RateTableEntry, NextHopResponse, BlackholeInfo,
34    LocalDestinationEntry, LinkInfoEntry, ResourceInfoEntry,
35};
36pub use node::{IfacConfig, InterfaceConfig, InterfaceVariant, NodeConfig, RnsNode, SendError};
37pub use interface::tcp::TcpClientConfig;
38pub use interface::tcp_server::TcpServerConfig;
39pub use interface::udp::UdpConfig;
40pub use interface::local::{LocalServerConfig, LocalClientConfig};
41pub use interface::serial_iface::SerialIfaceConfig;
42pub use interface::kiss_iface::KissIfaceConfig;
43pub use interface::pipe::PipeConfig;
44pub use interface::rnode::{RNodeConfig, RNodeSubConfig};
45pub use interface::backbone::BackboneConfig;
46pub use interface::auto::AutoConfig;
47pub use shared_client::SharedClientConfig;
48pub use config::RnsConfig;
49pub use ifac::IfacState;
50pub use serial::Parity;
51pub use storage::{StoragePaths, KnownDestination};
52pub use rpc::{RpcAddr, RpcServer, RpcClient};
53pub use link_manager::{LinkManager, LinkManagerAction};
54pub use management::ManagementConfig;
55pub use destination::{Destination, AnnouncedIdentity, GroupKeyError};
56
57// Re-export commonly used types from rns-core
58pub use rns_core::transport::types::InterfaceId;
59pub use rns_core::types::{DestHash, IdentityHash, LinkId, PacketHash, DestinationType, Direction, ProofStrategy};
60pub use rns_core::constants::{
61    MODE_FULL, MODE_POINT_TO_POINT, MODE_ACCESS_POINT,
62    MODE_ROAMING, MODE_BOUNDARY, MODE_GATEWAY,
63};