Crate thenodes

Crate thenodes 

Source
Expand description

§TheNodes Core Library

Modular, plugin-driven P2P node framework supporting two operation modes:

  • NEP (Node-Embedded Plugins): Host binary loads dynamic plugins at runtime.
  • CAL (Core-as-a-Library): Embed core logic in another application.

§Design Principles

  • Async-first: all I/O paths are non-blocking (Tokio + async traits).
  • Pluggable extension surface via plugin_host.
  • Realm isolation for logical network partitioning.
  • Optional encryption & trust policy with PKI directory model.
  • Event-driven instrumentation (JSON line audit log + console).
  • Progressive enhancement: features (discovery, trust policy depth, roles) can be enabled incrementally.

§Key Modules

  • config – Runtime configuration & plugin-provided defaults.
  • network – Transport, peer management, discovery, protocol messages.
  • security – Encryption (TLS optional) & trust policy scaffolding.
  • plugin_host – Dynamic plugin loading + dispatch context.
  • realms – RealmInfo definitions for segmentation.
  • events – Structured logging/events dispatcher.
  • prompt – Optional interactive prompt integration.

§Changelog

See CHANGELOG.md for unreleased changes while pre-1.0.

§Status

Pre-initial public release. APIs may change without notice until version 0.1.0 is tagged.

§Roadmap (High-Level)

  • Policy-based role / node_type communication matrix (incl. data diode semantics)
  • Reliability tiers (WAL, replay, at-least/exactly-once event durability)
  • Extended transport support (QUIC) & crypto plugin strategy
  • Capability negotiation in handshake
  • Enhanced discovery gossip strategies

Modules§

config
constants
Central place for application-wide constants and default values.
events
network
plugin_host
prelude
TheNodes public prelude (curated stable-intent exports). Import with: use thenodes::prelude::*;
prompt
realms
security
utils

Macros§

emit_trust_event

Structs§

TheNodes
TheNodes Core Struct

Functions§

create_instance
Exports for NEP (Node-Embedded Plugin)