See what is inside a CUBRID volume without starting the database or changing a byte.
Volmap turns an offline volume set into a navigable map of Volumes, Sectors, Pages, Files, and records. Start with the terminal interface, query the same facts from the CLI, or explore them in a browser.
Use the arrow keys to move, Enter to inspect, and Esc or Backspace to return.
The browser viewer presents the same inspection facts with shareable entity URLs and a full-volume mosaic.
The repository's just recipes pin Rust 1.97.1 and the frontend toolchain. The
supported release artifact is a static Linux x86-64 musl binary:
just build-releaseOpen a stopped database registered with CUBRID:
./target/x86_64-unknown-linux-musl/release/volmap tui --database demodbOr inspect a copied volume set directly through its volume-info file:
./target/x86_64-unknown-linux-musl/release/volmap \
tui --vinf /snapshot/demodb_vinfEvery command accepts exactly one of these inputs:
--database NAME [--databases-file FILE]
--vinf PATH [--volume-root DIR]
The CUBRID develop format is selected by default. Use
--format-profile feat-oos when inspecting volumes created by the experimental
OOS branch; Volmap cannot infer this choice reliably from the volume header.
- Volume geometry, Sector reservation, and Page allocation
- File ownership and Page-to-table association
- Slotted-page structure, free space, slots, and record layout
- Heap, B-tree, catalog, vacuum, and
REC_BIGONEoverflow metadata - OOS metadata and chains under the
feat-oosformat profile - Validated relocation and overflow chains
- TDE-encrypted Pages when an explicit local key file is supplied
- Typed record values only when the operator explicitly selects that record
Unsupported, encrypted, malformed, or incomplete evidence remains visible as a typed diagnostic. Volmap does not guess missing facts.
Get a quick human-readable summary:
volmap summary --vinf /snapshot/demodb_vinf --format humanQuery a specific entity as JSON:
volmap inspect --vinf /snapshot/demodb_vinf page:0:129 --format jsonStart the live web viewer on loopback:
volmap serve --vinf /snapshot/demodb_vinf --listen 127.0.0.1:8080Or create a deterministic, self-contained HTML report:
volmap export html --vinf /snapshot/demodb_vinf --output report.html \
--enrich page:0:129Selectors use nonnegative decimal identifiers:
volume:VOLID
sector:VOLID:SECTORID
file:VOLID:FILEID
page:VOLID:PAGEID
slot:VOLID:PAGEID:SLOTID
oos:VOLID:PAGEID:SLOTID
- Volmap is read-only. It never repairs or writes a CUBRID volume.
- Finite commands require a stopped database, immutable snapshot, or stable copy. If an input changes during inspection, Volmap invalidates the snapshot.
servefollows on-disk changes by default. It reports observed disk state, which is not the same as transactionally committed database state. Use--no-followfor one immutable reading.- Raw application bytes, ciphertext, and TDE secrets never appear in output. Decoded values appear only for explicitly selected records.
- The web server has no built-in authentication. Keep it on loopback or place remote access behind SSH, a VPN, firewall, or trusted TLS reverse proxy.
- This project is under active development and targets two pinned CUBRID volume
formats:
developcommitcd593bcf2d8643b4698f1cb311c4c23af23a9d57(the default) andfeat/ooscommite1e651debf6cc100172bde96603b17424f9c135a(selected with--format-profile feat-oos). A selected profile is never changed automatically; contradictory evidence may produce a diagnostic suggesting an explicit retry with the other profile.
The disclosure policy is documented in ADR-0001. See CONTEXT.md for the project vocabulary and docs/ for format contracts, design decisions, and research notes.
Run the complete local gate before submitting a change:
just verifyAfter changing web/src/, regenerate the committed frontend artifacts with
just vite::frontend-generate-artifacts. The just verify gate includes
just frontend-check.
To regenerate the TUI GIF from a repository-controlled fixture, install
asciinema, agg, and expect, then run:
docs/recordings/record-tui-demo.shRun volmap licenses to print the embedded project and dependency notices.

