1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//! # hd-cas
//!
//! Content-addressable store for hyperdocker.
//!
//! This crate provides a BLAKE3-hashed, content-defined chunked storage system.
//! Files are split into variable-size chunks using FastCDC, hashed with BLAKE3,
//! and stored with optional zstd compression. Identical content is automatically
//! deduplicated across environments.
//!
//! ## Key Types
//!
//! - [`ContentHash`] - A 256-bit BLAKE3 content hash
//! - [`ContentStore`] - On-disk content-addressable store
//! - [`Manifest`] - File manifest (ordered list of chunk hashes)
//! - [`GarbageCollector`] - Reference-counting garbage collector
//!
//! ## Example
//!
//! ```no_run
//! use hd_cas::{ContentStore, ContentHash};
//! use std::path::Path;
//!
//! let store = ContentStore::open(Path::new("/tmp/cas")).unwrap();
//! let hash = store.put_file(Path::new("myfile.txt")).unwrap();
//! store.get_file(&hash, Path::new("recovered.txt")).unwrap();
//! ```
// Re-export key types at crate root for convenience
pub use ContentHash;
pub use Manifest;
pub use ContentStore;
pub use ;