unb-core 1.0.0

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 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, UNB_BODY, UNB_CODE, UNB_CORR, UNB_HOPS, UNB_ID, UNB_KIND, UNB_PATH, UNB_SEQ,
    UNB_VERSION, DEFAULT_HOPS, PROTOCOL_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,
};
pub use route_control::{
    validate_node_identifier, NodeIdentity, RouteAck, RouteAckStatus, RouteAdvertisement,
    RouteDelta, RouteSnapshot, RouteWithdrawal, SessionClass, MAX_ROUTES_PER_UPDATE,
    MAX_ROUTE_IDENTIFIER_LEN, MAX_ROUTE_PATH, MAX_SUBJECT_LEN,
};
pub use route_table::{Resolution, RouteError};
pub use taxonomy::{suggest, teach_unknown, ErrorCode};