baryl 0.0.2

Public SDK for Baryl, a full-system emulation and introspection engine
//! Containers that survive the trip between two separately built binaries, and
//! a checkpoint.
//!
//! `BVec` is a fixed-length array and `BMap` a fixed-capacity map, both
//! `#[repr(C)]` and both allocated out of a pool region you name. [`FlatCStr`]
//! is a NUL-terminated string stored inline as `[u8; N]`, plus the handful of
//! conversions a `char[N]` field coming from a C header asks for.
//!
//! Nothing here is a substitute for `Vec` or `HashMap` in ordinary code — reach
//! for these only where the value has to outlive the process that built it or be
//! read by a binary compiled separately. `Vec` and `hashbrown` have no stable
//! layout, so neither can do either.

// `BVec`/`BMap` are `allocator_api`, so they compile only for a component.
#[cfg(feature = "component")]
pub mod bmap;
pub mod buffers;
#[cfg(feature = "component")]
pub mod bvec;

#[cfg(feature = "component")]
pub use bmap::BMap;
pub use buffers::*;
#[cfg(feature = "component")]
pub use bvec::BVec;