Crate engram_rs

Crate engram_rs 

Source
Expand description

Engram-rs: Unified archive library with manifest, signatures, and VFS support

This library provides a complete implementation of the Engram v0.3 archive format, combining:

  • Compressed archive storage (LZ4/Zstd)
  • Manifest with signature verification
  • VFS (Virtual File System) via embedded SQLite databases
  • Fast O(1) file lookup

§Example

use engram_rs::{ArchiveWriter, ArchiveReader};

// Create an archive
let mut writer = ArchiveWriter::create("example.eng")?;
writer.add_file("data.txt", b"Hello, World!")?;
writer.finalize()?;

// Read from archive
let mut reader = ArchiveReader::open("example.eng")?;
let data = reader.read_file("data.txt")?;

Re-exports§

pub use archive::ArchiveReader;
pub use archive::ArchiveWriter;
pub use archive::CompressionMethod;
pub use archive::EntryInfo;
pub use archive::FileHeader;
pub use archive::CD_ENTRY_SIZE;
pub use archive::FORMAT_VERSION_MAJOR;
pub use archive::FORMAT_VERSION_MINOR;
pub use archive::HEADER_SIZE;
pub use archive::MAGIC_NUMBER;
pub use archive::MAX_PATH_LENGTH;
pub use compat::EngramVfs;
pub use error::EngramError;
pub use error::Result;
pub use manifest::Author;
pub use manifest::FileEntry;
pub use manifest::Manifest;
pub use manifest::Metadata;
pub use manifest::SignatureEntry;
pub use vfs::VfsReader;

Modules§

archive
compat
Compatibility layer for old engram-vfs API
error
manifest
Manifest support for Engram archives
vfs
Virtual File System support for Engram archives