unb-core 2.0.3

Core unb protocol types: envelope, session, routing, taxonomy
Documentation
//! Sans-IO core of the unb protocol.
//!
//! [`ProtocolCore`] is the deterministic protocol authority. It owns focused
//! session reducers and produces bounded effects from transport inputs and local
//! operations. It performs no IO, spawns no tasks, and never reads a clock.
//! [`NodeCore`] is the shared node control plane: routing, catalog, and
//! dynamic-join routes.

mod application;
mod capability;
mod discover;
mod envelope;
mod error;
mod node_core;
mod protocol_core;
mod relay_reducer;
mod route_control;
mod route_table;
mod session;
mod target_path;
mod taxonomy;

pub use application::{ApplicationError, ApplicationFrame, ApplicationHead, BodyId};
pub use capability::CoreCapabilitySnapshot;
pub use discover::{
    Detail, DiscoverEvent, DiscoverPlan, DiscoverWalk, Mode, NodeCatalogSnapshot, Scope, WalkInput,
    WalkOutput,
};
pub use envelope::{
    Envelope, Kind, DEFAULT_HOPS, PROTOCOL_VERSION, UNB_BODY, UNB_CODE, UNB_CORR, UNB_HOPS, UNB_ID,
    UNB_KIND, UNB_PATH, UNB_SEQ, UNB_VERSION,
};
pub use error::CoreError;
pub use node_core::NodeCore;
pub use protocol_core::{
    ApplicationFailure, ApplicationInvocation, ApplicationOrigin, ApplicationResponse,
    ApplicationResult, CapacityResult, ClientDelivery, ClientOperationId, CoreEffect, CoreInput,
    CorrelationId, EffectId, OperationInput, OperationStreamDirection, OperationStreamOutcome,
    PeerAdmission, ProtocolCore, RelayOpenResult, RetirementReason, SendResult, SessionId,
    StreamKey, TargetReadinessResult,
};
pub use route_control::{
    validate_node_identifier, NodeIdentity, RouteAck, RouteAckStatus, RouteAdvertisement,
    RouteDelta, RouteSnapshot, RouteWithdrawal, SessionClass, MAX_DESTINATION_LEN,
    MAX_ROUTES_PER_UPDATE, MAX_ROUTE_IDENTIFIER_LEN, MAX_ROUTE_PATH, MAX_SUBJECT_LEN,
};
pub use route_table::{Resolution, RouteError};
pub use target_path::TargetPath;
pub use taxonomy::{suggest, teach_unknown, ErrorCode};