Skip to main content

jacquard_host_support/
lib.rs

1//! Reusable host-support primitives for Jacquard transport/profile
2//! implementers.
3//!
4//! `jacquard-host-support` exists to hold generic ownership, mailbox, bookkeeping,
5//! and host-side observational helpers that concrete transports, profiles, and
6//! hosts can reuse without pushing runtime-support infrastructure into
7//! `jacquard-core` or `jacquard-traits`.
8//!
9//! ## Host Support Surface
10//!
11//! This crate owns transport-neutral host-side helpers such as bounded raw
12//! ingress mailboxes, unresolved/resolved peer bookkeeping, in-flight claim
13//! guards, transport-neutral endpoint conveniences, and host-side topology
14//! read-model projectors. These helpers are reusable support primitives and
15//! observational utilities, not shared world-model vocabulary and not
16//! behavioral trait boundaries.
17//!
18//! ## Ownership
19//!
20//! `jacquard-host-support` may own generic support primitives for host tasks and
21//! observational read models, but it must not:
22//! - redefine shared world-model types that belong in `jacquard-core`
23//! - publish capability or driver traits that belong in `jacquard-traits`
24//! - encode transport-specific semantics that belong in concrete transport crates
25//! - implement router logic, engine logic, or canonical route publication
26//! - stamp Jacquard `Tick` or `OrderStamp` internally
27//!
28//! Concrete host and transport integrations may depend on this crate for ownership scaffolding, but
29//! canonical route truth, router progression, and transport-specific protocol
30//! behavior all stay outside this crate.
31
32#![forbid(unsafe_code)]
33#![cfg_attr(not(feature = "std"), no_std)]
34
35extern crate alloc;
36
37mod claims;
38mod decay_window;
39mod dispatch;
40mod endpoint;
41mod mailbox;
42mod ogm_receive_window;
43mod peers;
44mod topology;
45
46pub use claims::*;
47pub use decay_window::*;
48pub use dispatch::*;
49pub use endpoint::*;
50pub use mailbox::*;
51pub use ogm_receive_window::*;
52pub use peers::*;
53pub use topology::*;