Skip to main content

hexz_core/
lib.rs

1// unsafe required for: MaybeUninit buffer writes in parallel decompression,
2// raw pointer copies in read_at_into_uninit, and hot-path hash table ops.
3// All unsafe blocks have individual SAFETY comments.
4#![allow(unsafe_code)]
5#![cfg_attr(
6    test,
7    allow(
8        clippy::unwrap_used,
9        clippy::expect_used,
10        clippy::significant_drop_tightening,
11        unused_results
12    )
13)]
14
15//! Core archive engine: format, algorithms, cache, and read API.
16//!
17//! `hexz-core` is the minimal, dependency-light foundation for reading Hexz
18//! archives. It has no network deps, no async runtime, and no write-path
19//! parallelism. Those concerns live in `hexz-store` and `hexz-ops`.
20//!
21//! # Modules
22//!
23//! - **[`mod@format`]**: On-disk binary structures (header, index, magic, version)
24//! - **[`algo`]**: Compression, encryption, hashing, deduplication traits + impls
25//! - **[`cache`]**: Sharded LRU cache for decompressed blocks and index pages
26//! - **[`store`]**: [`StorageBackend`](store::StorageBackend) trait (implementations in `hexz-store`)
27//! - **[`api`]**: [`Archive`] — the public read API
28
29pub mod algo;
30pub mod api;
31pub mod cache;
32pub mod format;
33pub mod store;
34
35pub use api::file::{Archive, ArchiveStream};