Rust library and one command-line tool for reading, modifying, comparing, and tracing JIF files (Junction Image Format).
The active workspace has three crates:
| Crate | Purpose |
|---|---|
jif |
Core JIF data model, parser, writer, and transformations. |
jiftool |
Single CLI for inspection, mutation, comparison, trace context, and plotting. |
tracer-format |
Parser for Junction timestamped access traces. |
The JIF format specification is reserved for SPEC.md; that file is
currently a placeholder. For code layout, start with
docs/ARCHITECTURE.md.
Build everything:
cargo build --workspaceRun the test suite:
cargo test --workspaceInspect a JIF:
cargo run -p jiftool -- read image.jif
cargo run -p jiftool -- read image.jif pheaders --start 0 --end 5
cargo run -p jiftool -- read image.jif ordCheck that a file parses:
cargo run -p jiftool -- check image.jif
cargo run -p jiftool -- check --raw image.jifWrite a modified JIF:
cargo run -p jiftool -- modify input.jif output.jif build-itrees
cargo run -p jiftool -- modify input.jif output.jif rename /usr/bin/ld.so /bin/ld.so
cargo run -p jiftool -- modify input.jif ordered.jif add-ord trace.ordTrace and compare:
cargo run -p jiftool -- trace image.jif trace.ord
cargo run -p jiftool -- compare a.jif b.jif
cargo run -p jiftool -- time image.jif trace.ord access-plotjif/src/jif.rsownsJif,JifRaw, whole-file operations, summaries, and address resolution helpers.jif/src/ord.rsowns ordering chunks and ordering-section stats.jif/src/itree/owns interval-tree data structures and transformations.jif/src/read/andjif/src/write/own binary parsing and serialization.jiftool/src/main.rsowns top-level command routing.jiftool/src/commands/owns user-facing behavior for each subcommand.jiftool/src/io.rs,digest.rs, andpython.rscontain reusable CLI helpers.tracer-format/src/owns trace parsing and deduplication.