-
Notifications
You must be signed in to change notification settings - Fork 0
Getting Started
Raul Cardenas Montoya edited this page Sep 17, 2026
·
3 revisions

The crate is not on crates.io (0.2.0 is a git tag, no registry publish). Depend on git:
[dependencies]
engram-parser = { git = "https://github.com/rmems/engram-parser", branch = "main" }Optional features (both off by default):
[dependencies]
# Safetensors header/manifest/discovery (zero extra crates)
engram-parser = { git = "https://github.com/rmems/engram-parser", branch = "main", features = ["safetensors"] }
# mmap GGUF reader (pulls in memmap2, the crate's only optional dependency)
engram-parser = { git = "https://github.com/rmems/engram-parser", branch = "main", features = ["mmap"] }Default builds stay zero-dependency; memmap2 activates only under
--features mmap.
use engram_parser::{extract_expert, list_experts, load_gguf};
fn main() -> Result<(), engram_parser::ParserError> {
let layout = load_gguf("./model.gguf")?;
println!("architecture = {}", layout.metadata.architecture());
for (block, expert) in list_experts(&layout) {
let weights = extract_expert(&layout, block, expert)?;
if let Some(gate) = &weights.gate {
println!(
"blk.{block}.expert{expert}.gate: dims={:?} dtype={:?} bytes={}",
gate.dims, gate.dtype, gate.bytes.len()
);
}
}
Ok(())
}use engram_parser::{dequantize_packed, dequantize_q8_0};
// Raw packed bytes for a Q8_0 tensor + its dims → f32 values
let values: Vec<f32> = dequantize_q8_0(&packed_bytes, &dims)?;
// or dispatch on dtype:
let values: Vec<f32> = dequantize_packed(dtype, &packed_bytes, &dims)?;Supported: Q8_0, Q5_K, Q6_K, IQ3_M block layout, plus the existing
dequantize_f16.
use engram_parser::safetensors::inspect_safetensors_checkpoint;
let manifest = inspect_safetensors_checkpoint("model.safetensors")?;
println!("tensors = {}", manifest.checkpoint.tensor_count);Requires --features safetensors. Header/manifest/discovery only — no payload
mmap, no Hugging Face config.json policy.
use engram_parser::parse_bytes;
let layout = parse_bytes(bytes, "mem://fixture".into())?;cargo fmt --check
cargo clippy --all-targets --all-features -- -D warnings
cargo build --all-features
cargo test --all-features
# Coverage (optional)
cargo llvm-cov --all-targets --all-features --locked --lcov --output-path lcov.infoMSRV: Rust 1.97.1. Edition: 2024.
docker build -t engram-parser .
docker run --rm engram-parser
# GHCR (main):
docker pull ghcr.io/rmems/engram-parser:mainLast updated: September 16, 2026
Updated by: KAI
Package tip reference: 3dea2c3 (main)