Expand description
LimniFS core reader: manifest header + section parsers, plus the
drop-store primitives (slab header, drop record, slab index).
Source of truth: limnifs/spec §3 (drop store), §5 (manifest
sections), and the bit-level files under bit-level/.
Architecture: every parser takes a cursor::ManifestCursor and
returns the parsed value plus the cursor advanced past the section.
Bounds checks live in one place (the cursor); each parser focuses
on the structural invariants of its own section. Adding a new
section is a new module + a new parser function — no edits to
existing parsers (OCP).
§Module map
Re-exports§
pub use cursor::ManifestCursor;pub use directory_node::parse_directory_node;pub use directory_node::DirEntry;pub use directory_node::DirectoryNode;pub use directory_node::DIRECTORY_NODE_VERSION;pub use dms_policy::parse_dms_policy;pub use dms_policy::parse_dms_policy_with_ceilings;pub use dms_policy::DmsPolicy;pub use dms_policy::DEFAULT_HINT_MAX_BYTES;pub use dms_policy::DEFAULT_SHARE_DATA_MAX_BYTES;pub use dms_policy::DMS_POLICY_SECTION_VERSION;pub use dms_policy::DMS_SCHEME_EXTENDED;pub use dms_policy::DMS_SCHEME_SHAMIR;pub use dms_policy::MAX_TOTAL_SHARES;pub use drop_record::parse_drop_record;pub use drop_record::parse_drop_record_with_ceiling;pub use drop_record::DropRecord;pub use drop_record::DROP_RECORD_LEN;pub use ec_params::parse_ec_params;pub use ec_params::EcOverride;pub use ec_params::EcParams;pub use ec_params::DEFAULT_EC_POLYNOMIAL;pub use ec_params::EC_PARAMS_SECTION_VERSION;pub use ec_params::MAX_SHARDS;pub use error::CoreError;pub use feature_flags::parse_feature_flags_section;pub use feature_flags::FeatureFlag;pub use feature_flags::FeatureFlags;pub use feature_flags::FEATURE_FLAGS_SECTION_VERSION;pub use header::parse_manifest_header;pub use header::ManifestHeader;pub use history::parse_history;pub use history::parse_history_with_ceiling;pub use history::History;pub use history::HistoryEntry;pub use history::HistoryOp;pub use history::DEFAULT_HISTORY_PARAMS_MAX_BYTES;pub use history::HISTORY_SECTION_VERSION;pub use history::OP_EXTENDED;pub use inode::parse_inode;pub use inode::parse_inode_with_ceiling;pub use inode::ContentHandle;pub use inode::Inode;pub use inode::SliceRef;pub use inode::XAttr;pub use inode::DEFAULT_INLINE_DATA_MAX_BYTES;pub use inode::INODE_FIXED_PREFIX_LEN;pub use inode::INODE_FLAG_ATIME;pub use inode::INODE_FLAG_INLINE_DATA;pub use inode::INODE_FLAG_RESERVED_MASK;pub use inode::INODE_FLAG_SHARED_INLINE;pub use inode::S_IFBLK;pub use inode::S_IFCHR;pub use inode::S_IFDIR;pub use inode::S_IFIFO;pub use inode::S_IFLNK;pub use inode::S_IFMT;pub use inode::S_IFREG;pub use inode::S_IFSOCK;pub use locator::parse_locator_entries;pub use locator::parse_locator_entries_with_ceiling;pub use locator::parse_locator_entry;pub use locator::parse_locator_entry_with_ceiling;pub use locator::LocatorEntry;pub use locator::DEFAULT_LOCATOR_MAX_URI_BYTES;pub use locator::LOCATOR_LENGTH_PREFIX_LEN;pub use locator::MIN_LOCATOR_URI_BYTES;pub use merkle::compute_merkle_root;pub use merkle::hash_empty_section;pub use merkle::hash_section;pub use merkle::section_hashes_minimal;pub use merkle::SectionHashes;pub use merkle::MERKLE_DOMAIN_SEPARATOR;pub use metadata::dir_node_hash;pub use metadata::parse_metadata_blob;pub use metadata::parse_metadata_blob_with_ceiling;pub use metadata::MetadataBlob;pub use metadata_reference::parse_metadata_reference;pub use metadata_reference::parse_metadata_reference_with_ceilings;pub use metadata_reference::read_external_metadata;pub use metadata_reference::MetadataReference;pub use metadata_reference::DEFAULT_INLINE_METADATA_MAX_BYTES;pub use metadata_reference::METADATA_REFERENCE_SECTION_VERSION;pub use metadata_reference::METADATA_REFERENCE_SECTION_VERSION_2;pub use slab::parse_slab_header;pub use slab::parse_slab_header_with_ceiling;pub use slab::SlabHeader;pub use slab::CRYPTO_HINT_EXTENDED;pub use slab::DEFAULT_SLAB_MAX_BYTES;pub use slab::EC_DESCRIPTOR_EXTENDED;pub use slab::SLAB_FORMAT_VERSION;pub use slab::SLAB_HEADER_LEN;pub use slab_index::parse_slab_index;pub use slab_index::parse_slab_index_with_ceiling;pub use slab_index::SlabIndex;pub use slab_index::SlabIndexEntry;pub use slab_index::SLAB_INDEX_SECTION_VERSION;pub use slab_reader::parse_slab;pub use slab_reader::SlabView;
Modules§
- aead
- AEAD registry — maps AEAD ids to algorithm metadata.
- aead_
ops - AEAD operations: encrypt/decrypt trait + implementations.
- categorization_
policy - Categorization policy manifest section.
- chunking_
config - Chunking config manifest section.
- codec
- Codec registry — dispatches compression/decompression by codec id.
- compression_
tournament_ config - Compression tournament config manifest section.
- crypto
- AEAD encrypt/decrypt — actual cryptographic operations.
- cursor
- Cursor over a manifest byte slice.
- delta_
linkage - Delta linkage section (spec §5.8,
bit-level/45-delta-linkage.md). - dictionary_
section - Dictionary section manifest module.
- directory_
node - Directory node (spec §4.2,
bit-level/34-directory-node.md). - dms_
policy - DMS policy section (spec §5.7,
bit-level/44-dms-policy.md). - dms_
scheme - DMS (distributed multi-share) scheme registry — maps DMS scheme ids to algorithm metadata.
- drop_
record - Drop record (spec §3.3,
bit-level/31-drop-record.md). - ec_
params - EC params section (spec §5.6,
bit-level/43-ec-params.md). - ec_
repair - Slab erasure-coding repair — reconstruct missing shards from surviving ones and re-emit them to the caller.
- ec_
scheme - EC (erasure coding) scheme registry — maps EC ids to algorithm metadata.
- encryption_
descriptor - Encryption descriptor manifest section.
- epoch
- Epoch format — writable images via content-addressed epoch chains.
- error
- Errors returned by the limnifs-core parsers.
- feature_
flags - Feature flags section (spec §5.2,
bit-level/36-feature-flags.md). - fetch
- Locator fetch trait — abstracts how slab bytes and metadata blobs are fetched from storage at runtime.
- gf256
- GF(2^8) arithmetic — shared field for Shamir secret sharing and Reed-Solomon erasure coding.
- header
- Manifest header (spec §5.1,
bit-level/35-manifest-header.md). - history
- History section (spec §5.9,
bit-level/40-history.md). - inode
- Inode record (spec §4.1,
bit-level/33-inode.md). - live_
tree - Live tree walker — visit every inode reachable from a root.
- locator
- Locator entry (spec §12,
bit-level/37-locator-entry.md). - merkle
- Merkle root construction (spec §5.10,
bit-level/46-merkle-root.md). - metadata
- Metadata blob (spec §4.1 + §4.2,
bit-level/33-inode.mdandbit-level/34-directory-node.md). - metadata_
reference - Metadata reference section (spec §5.3,
bit-level/38-metadata-reference.md). - profile_
descriptor - Profile descriptor manifest section.
- read
- Reader-side entry points — the efficient path made the default path (limnifs#192).
- reed_
solomon - Reed-Solomon erasure coding over GF(2^8).
- seekable
- Seekable drop container (slab format v2, TODO.sota-fs/05).
- shamir
- Shamir secret sharing over GF(2^8).
- slab
- Slab header (spec §3.2,
bit-level/30-slab-header.md). - slab_
cache - Hot slab cache — SIEVE-evicted, byte-and-count bounded cache over
decoded drop plaintexts shared as
Arc<[u8]>. - slab_
index - Slab index section (spec §5.4,
bit-level/39-slab-index.md). - slab_
reader - Slab reader — locates and extracts a drop’s plaintext from a slab.
- slab_
source - Slab source trait — abstraction over how slab bytes are accessed.
- slab_
store - Slab store — owns all slab bytes for an image and provides O(1)
DropId→ plaintext lookup across slabs.
Structs§
- Manifest
Root - 32-byte image identity: BLAKE3 of the manifest’s Merkle hash list.