brec 0.3.0

A flexible binary format for storing and streaming structured data as packets with CRC protection and recoverability from corruption. Built for extensibility and robustness.
Documentation
#![deny(unused_crate_dependencies)]
#![doc = include_str!("../README.md")]

#[cfg(feature = "build")]
pub mod build;
#[cfg(feature = "crypt")]
pub mod crypt;
#[cfg(feature = "bincode")]
pub use bincode;
#[cfg(feature = "build")]
pub use build::*;
#[cfg(test)]
pub mod tests;
#[cfg(test)]
use tempfile as _;

extern crate brec_macros;

/// Maximum number of blocks allowed in a single packet.
pub const MAX_BLOCKS_COUNT: u8 = u8::MAX;

/// Shared error types used across the crate.
pub mod error;
/// Packet types, readers, rules, and related helpers.
pub mod packet;
/// Payload traits, headers, and default payload helpers.
pub mod payload;
/// Convenient reexports for typical user code.
pub mod prelude;
/// Packet storage, readers, writers, and observer support.
pub mod storage;
/// Low-level traits used by generated and handwritten protocol types.
pub mod traits;

pub use brec_macros::*;
pub use crc32fast;
#[cfg(feature = "crypt")]
pub use crypt::{BricCryptCodec, CryptAlgorithm, CryptEnvelopeRecord};
pub use payload::{
    DefaultPayloadContext, PayloadDecode, PayloadEncode, PayloadEncodeReferred, PayloadHeader,
    PayloadHooks, PayloadSchema, default_payload_context,
};
pub use storage::*;

pub use crate::error::*;
pub use crate::packet::*;
pub use crate::traits::*;