2026-04-24 13:37:30 -06:00
|
|
|
//! # UnShell Core
|
2026-04-24 12:32:24 -06:00
|
|
|
//!
|
2026-04-24 13:37:30 -06:00
|
|
|
//! This crate implements the UnShell protocol as a pure, `no_std` library.
|
2026-04-25 11:57:37 -06:00
|
|
|
//! It provides routed endpoint communication using an explicit tree topology.
|
2026-04-24 12:32:24 -06:00
|
|
|
//!
|
2026-04-24 13:37:30 -06:00
|
|
|
//! ## Architecture
|
2026-04-24 12:32:24 -06:00
|
|
|
//!
|
2026-04-25 11:57:37 -06:00
|
|
|
//! - [`protocol`] - Wire types, framing, stateless validation, and routing/runtime.
|
2026-04-24 12:32:24 -06:00
|
|
|
//!
|
2026-04-24 13:37:30 -06:00
|
|
|
//! The library requires `alloc` for path and payload management.
|
|
|
|
|
|
|
|
|
|
#![no_std]
|
2026-03-17 16:40:05 -06:00
|
|
|
|
2026-04-25 14:41:00 -06:00
|
|
|
pub extern crate alloc;
|
|
|
|
|
// Re-export derive macros against a stable `::unshell` path, including when the
|
|
|
|
|
// macros are used inside this crate's own examples and tests.
|
|
|
|
|
#[allow(unused_extern_crates)]
|
|
|
|
|
extern crate self as unshell;
|
2025-11-08 14:56:03 -07:00
|
|
|
|
2025-11-09 12:34:52 -07:00
|
|
|
pub mod logger;
|
2026-04-26 12:39:06 -06:00
|
|
|
|
|
|
|
|
/// Re-export the protocol crate behind the historical `unshell::protocol` path so
|
|
|
|
|
/// proc-macro output and downstream code do not need a second migration.
|
|
|
|
|
pub use unshell_protocol as protocol;
|
2025-11-08 14:56:03 -07:00
|
|
|
|
2026-04-26 12:57:56 -06:00
|
|
|
/// Re-export the leaf library crate behind the historical `unshell::leaves` path
|
|
|
|
|
pub use unshell_leaves as leaves;
|
|
|
|
|
|
2026-04-25 17:42:39 -06:00
|
|
|
pub use unshell_macros::{Leaf, Procedure, procedures};
|
2026-04-25 14:41:00 -06:00
|
|
|
|
2026-04-24 13:37:30 -06:00
|
|
|
// pub use ush_obfuscate as obfuscate;
|