METRA / DOCUMENTATION

Contracts before
claims.

A compact guide to installing Metra, choosing a workflow, and understanding exactly where its safety and compatibility boundaries are.

cd Metra cargo install --path . metra --version

Source-only release: prebuilt binaries are not attached yet. Build locally with Cargo for the target platform.

01 / INSTALL

From source, on purpose.

Metra v0.1.1 is a source release. The repository pins Rust 1.95 in rust-toolchain.toml; the manual platform workflow checks Linux, macOS, and Windows.

git clone https://github.com/OthmaneBlial/Metra.git
cd Metra
cargo install --path .
metra --version

Source-only release: prebuilt binaries are not attached yet. Build locally with Cargo for the target platform.

cd Metra cargo install --path . metra --version

Source-only release: prebuilt binaries are not attached yet. Build locally with Cargo for the target platform.

02 / WORKFLOWS

Read, change, compare.

Read

Use signature-based detection, human output, or a versioned structured format.

metra photo.jpg
metra --json photo.jpg
metra --jsonl --jobs 4 -r photos/

Change

Writers are narrow and explicit. Unsupported growth or missing storage fails before replacement.

metra --set \
  'PNG:ModificationTime=2026-09-14 12:34:56' \
  image.png
metra --delete PNG:ModificationTime image.png

03 / ARCHITECTURE

One model, two entry points.

The root crate exposes a public facade used by the CLI. metra-core owns the typed model and safety primitives. metra-formats owns detection, readers, creators, and format-specific writers.

CLI (`src/main.rs`)       Rust API (`src/lib.rs`)
          \                      /
           ▼                    ▼
     detection + format handler registry
                       │
                       ▼
       bounded readers / typed metadata model
                       │
       set/delete/copy → validate → atomic replace

Read the canonical source documentation in docs/ARCHITECTURE.md ↗.

04 / SAFETY

Untrusted files stay bounded.

These are risk-reduction measures, not a replacement for backups or review of untrusted content. Read the full security policy ↗.

05 / STATUS

Pre-1.0, with the limits visible.

Initial roadmap: complete. Bounded readers, typed output, deterministic batches, validated seeds, narrow writers, reproducible fixtures, and project documentation are covered by repository checks.

Still intentionally bounded: selected MakerNote families, proprietary RAW reads, fixed-span writer seams, and opt-in differential evidence.

Post-roadmap: broader real-world corpus evidence, deeper structures, more writes, and cross-platform performance baselines remain future work.

See the complete delivery snapshot and explicit boundaries in ROADMAP.md ↗.