Preview of the proposed up-rust native-frame-model branch (up-rust b6b99c6d, up-spec f0e9b17) — not released documentation. branch · write-up

up_rust/frame/
mod.rs

1// SPDX-License-Identifier: Apache-2.0
2//! # The UFrame data layer
3//!
4//! Everything about frames-as-data lives here, independent of any transport:
5//!
6//! - [`metadata`](crate::frame::metadata) — [`UFrameMetadata`](crate::UFrameMetadata), the
7//!   family-invariant semantic metadata model, plus
8//!   [`PayloadEncoding`](crate::PayloadEncoding) identity and the fallible
9//!   projections to and from `UMessage` attributes.
10//! - [`codec`](crate::frame::codec) — the canonical metadata field-block profile: how metadata
11//!   becomes bytes under a metadata profile.
12//! - `envelope` — complete-frame `UPFE` serialization, available with
13//!   `owned-frame-transport`, for transports that
14//!   carry metadata and payload in one byte envelope. Selected-wire `UPWM`
15//!   profile prefixes are owned by the wire adapter, not this module.
16//! - [`abi`](crate::frame::abi) — `UFrameMetadataAbiV1`, the fixed-layout `#[repr(C)]` profile
17//!   for cross-language shared-memory boundaries. NOTE: its consumers are
18//!   C/C++ peers; zero Rust references is its expected steady state.
19//!
20//! Spec: `up-spec/basics/uframe.adoc` and
21//! `up-spec/up-l1/transport_families.adoc`.
22
23pub mod view;
24pub use view::{validate_frame_view_for_transport, UFrameView};
25pub mod abi;
26pub mod codec;
27#[cfg(feature = "owned-frame-transport")]
28pub mod envelope;
29pub mod metadata;