How it fits together
- 01Provider
- 02Piece tree
- 03Snapshot
- 04Visible pages
- 05Canvas grid
Any size, instantly
Hexa never reads a whole file. The UI asks Rust for the visible window as a raw ArrayBuffer and keeps a small page cache, so a 100 GB file opens as fast as a 100-byte one and scrolls at 60 fps.
- Edits live in a persistent B+-tree of pieces,
{source, offset, length}, with path copying: every edit costs O(log n) memory. - Copying a gigabyte is a reference. Fills and random data are never materialised.
- Search, hashes, diff and analysis run on a snapshot, without locks, while you keep editing.
Saves you can trust
Undo is a tree: branches, and reverting one edit from the middle of history. A write journal keeps undo working even after you save.
- Atomic save keeps permissions and xattrs.
- In-place writes are ordered by a dependency graph, need no free disk space and roll back after a crash.
Structures and reverse engineering
- An ImHex-style template language with an LSP and a debugger, importers for Kaitai, 010 Editor, C headers, DWARF and PDB, and 28 formats built in.
- PE, ELF and Mach-O, disassembly for every Capstone architecture, inline assembly patches with NOP padding, cross-references.
- Shift-aware diff, N-way and three-way merge, IPS, UPS, BPS, VCDIFF and bsdiff patches.
- Entropy maps, Hilbert curves, strings, embedded files, YARA rules and 100+ hashes, ssdeep and TLSH included.
Beyond files
Raw disks, partitions and file systems (FAT, exFAT, ext, NTFS, ISO), disk images from VHDX to E01, the memory of a running process with a scanner and pointer search, and files over HTTP, S3 and SFTP.
Scriptable, and sandboxed
A Lua console with memory, instruction and time limits, WASM plugins with fuel caps, a local HTTP API on 127.0.0.1 behind a token, and hexa-cli: the same engine headless, with exit codes for CI.
hexa-cli diff old.bin new.bin --stats -f json
hexa-cli search dump.bin --hex "DE AD ?? EF" --countStack
Twelve Rust crates with no UI, from hexa-core to hexa-wasm, a Tauri 2 shell and React 19 drawing the grid on a canvas. The core also ships as a WebAssembly npm package. Russian and English, Vim and Emacs keymaps, a screen reader mode.