Skip to main content

unb_core/
lib.rs

1//! Sans-IO core of the unb protocol.
2//!
3//! [`ProtocolCore`] is the deterministic protocol authority. It owns focused
4//! session reducers and produces bounded effects from transport inputs and local
5//! operations. It performs no IO, spawns no tasks, and never reads a clock.
6//! [`NodeCore`] is the shared node control plane: routing, catalog, and
7//! dynamic-join routes.
8
9mod application;
10mod capability;
11mod discover;
12mod envelope;
13mod error;
14mod node_core;
15mod protocol_core;
16mod relay_reducer;
17mod route_control;
18mod route_table;
19mod session;
20mod target_path;
21mod taxonomy;
22
23pub use application::{ApplicationError, ApplicationFrame, ApplicationHead, BodyId};
24pub use capability::CoreCapabilitySnapshot;
25pub use discover::{
26    Detail, DiscoverEvent, DiscoverPlan, DiscoverWalk, Mode, NodeCatalogSnapshot, Scope, WalkInput,
27    WalkOutput,
28};
29pub use envelope::{
30    Envelope, Kind, DEFAULT_HOPS, PROTOCOL_VERSION, UNB_BODY, UNB_CODE, UNB_CORR, UNB_HOPS, UNB_ID,
31    UNB_KIND, UNB_PATH, UNB_SEQ, UNB_VERSION,
32};
33pub use error::CoreError;
34pub use node_core::NodeCore;
35pub use protocol_core::{
36    ApplicationFailure, ApplicationInvocation, ApplicationOrigin, ApplicationResponse,
37    ApplicationResult, CapacityResult, ClientDelivery, ClientOperationId, CoreEffect, CoreInput,
38    CorrelationId, EffectId, OperationInput, OperationStreamDirection, OperationStreamOutcome,
39    PeerAdmission, ProtocolCore, RelayOpenResult, RetirementReason, SendResult, SessionId,
40    StreamKey, TargetReadinessResult,
41};
42pub use route_control::{
43    validate_node_identifier, NodeIdentity, RouteAck, RouteAckStatus, RouteAdvertisement,
44    RouteDelta, RouteSnapshot, RouteWithdrawal, SessionClass, MAX_DESTINATION_LEN,
45    MAX_ROUTES_PER_UPDATE, MAX_ROUTE_IDENTIFIER_LEN, MAX_ROUTE_PATH, MAX_SUBJECT_LEN,
46};
47pub use route_table::{Resolution, RouteError};
48pub use target_path::TargetPath;
49pub use taxonomy::{suggest, teach_unknown, ErrorCode};