| docs | |
| librats | |
| bindings | |
| rats.h | The C ABI over Node — what every language binding is built on |
| core | |
| address.h | A dialable transport endpoint: a numeric IP + port |
| bytes.h | Lightweight byte container aliases and a non-owning byte view |
| event_bus.h | A tiny typed publish/subscribe hub for decoupled module notifications |
| service_registry.h | Interface-keyed service lookup for targeted, synchronous module calls |
| nat | |
| port_mapping.h | Shared types for automatic NAT port forwarding (UPnP IGD + NAT-PMP) |
| node | |
| circuit_service.h | Turning a relayed byte stream into a peer connection — the capability a relay module needs and PeerNetwork deliberately does not offer |
| config.h | Node construction options |
| dial_service.h | Dialing a specific endpoint over a specific wire — the capability a NAT-traversal module needs and the ordinary connect() cannot express |
| nat_status.h | What the mesh has told us about our own side of the NAT |
| node.h | The public entry point: a thin facade that wires the layers together |
| node_context.h | What a subsystem receives at attach() — the node's gift to its plugins |
| peer_network.h | The narrow contract a subsystem needs from the node — and nothing more |
| peer | |
| peer.h | A lightweight handle to a connected peer |
| peer_id.h | Self-certifying peer identity |
| peer_info.h | Addressing/metadata for a peer — the shareable, persistable identity |
| storage | |
| storage.h | Distributed key-value store as a pluggable Node subsystem |
| subsystems | |
| bittorrent.h | BitTorrent as a node Subsystem — wraps bittorrent::Client and shares the node's DHT |
| dht_discovery.h | Peer discovery via the Kademlia DHT — a thin adapter, not a rewrite |
| dht_service.h | Capability that hands out the node-owned DhtClient to sibling modules |
| file_transfer.h | Stream a file or a whole directory tree to a peer, with integrity, backpressure, pause/resume/cancel, idle-timeout and crash-safe writes |
| hole_punch.h | UDP hole punching: two nodes behind NATs dial each other at the same instant, arranged through a peer they both already have |
| hole_punch_service.h | Capability that lets a sibling module ask for a NAT hole punch by PeerId |
| mdns_discovery.h | Local-network peer discovery via mDNS — a thin adapter, not a rewrite |
| message_json.h | Typed JSON message exchange over PeerNetwork |
| peer_exchange.h | Peer exchange (PEX): peers gossip the addresses of peers they know, so a node bootstraps the mesh from its existing links — no DHT/tracker needed |
| ping_service.h | Liveness + round-trip-time probing, built purely on PeerNetwork |
| port_mapping_service.h | Automatic NAT port forwarding (UPnP IGD + NAT-PMP) as a Subsystem |
| pubsub.h | Topic-based publish/subscribe — a GossipSub implementation over PeerNetwork |
| reconnection.h | Keeps connections to a set of peer addresses alive with backoff |
| relay.h | Reaching a peer through a node both ends can already reach |
| relay_service.h | Capability that lets a sibling module ask for a peer to be reached through a third node, by PeerId |
| util | |
| json.h | A small, self-contained JSON value type for librats |
| wire | |
| frame.h | Two-level wire framing: outer length-prefixed blocks, inner messages |