Built on GPUI (the high-performance GPU UI framework powering Zed).
Engineered to be snappy, intuitive, and versatile for reverse engineering, firmware inspection, and binary format debugging.
Warning
Alpha Software Notice & Disclaimer
xvw is currently in early alpha stage and has not been fully evaluated or hardened. Please make reliable backups of your files before editing. Use at your own risk.
We actively welcome feedback, bug reports, and contributions! Feel free to open an issue or submit a pull request.
- ⚡ Instant Multi-GB File Loading
Memory-mapped I/O (memmap2) allows gigabyte-sized files and disk dumps to open immediately with negligible RAM usage and zero lag. - 🧬 Interactive Kaitai Struct Parsing
Load.ksyformat definitions at runtime to dissect complex binary formats (ZIP, ELF, Mach-O, PNG, etc.) with structured tree navigation, inline color highlights, and parsed values. - ✂️ Custom Logical Line Breaks
HitEnteranywhere to break lines at natural packet or record boundaries instead of being locked into a rigid 16-byte grid. PressCmd+J/Ctrl+Jto join lines back. - 🔍 Real-Time Data Inspector
Inspect any byte or selection decoded simultaneously intoi8–i64,u8–u64(Little/Big Endian),f32/f64, Unix timestamps, binary bits, and character representations. - 📊 2D Visual Map & Entropy View
Render byte values as a 2D bitmap with grayscale, byte-category, and rainbow color modes to visually identify code segments, compressed sections, and encrypted payloads. - ⚖️ Synchronized Side-by-Side Diff
Compare two binary files side by side with synchronized scrolling, difference counters, and clear delta highlights. - 🌐 40+ Text Encodings
Decode and search strings across UTF-8, UTF-16, Shift-JIS, EUC-JP, GB18030, Big5, ISO-8859 variants, Windows code pages, and legacy character sets. - 📋 Rich "Copy As" Exports
Quickly export selections as C/C++ arrays, Rust arrays, JSON arrays, Base64 strings, Hex streams, printable text, or formatted Hex dumps. - ⌨️ Vim-Inspired Keybindings
Navigate effortlessly withh/j/k/l, expand selections withShiftmodifiers, and search with/across hex patterns, text, and regex.
Load format definitions on the fly to inspect fields, offsets, and nested data structures directly mapped over raw bytes.
Spot byte patterns, compression boundaries, and encryption blocks with 2D heatmaps and custom palette modes.
Verify firmware patches, inspect file mutations, and track binary deltas with synchronized dual-pane diffing.
Decode values on the fly across multiple numeric and text representations with configurable endianness.
- Rust (2024 edition / latest stable)
Install via rustup.rs:curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Clone the repository
git clone https://github.com/funap/xvw.git
cd xvw
# Build and run
cargo run --releasexvw comes with a powerful CLI interface allowing you to launch straight into your target analysis workflow:
# Open a specific binary file
xvw path/to/binary_file.bin
# Open a project folder / workspace
xvw --folder path/to/folder
# Open a file and automatically apply a Kaitai Struct definition
xvw firmware.bin --ksy specs/firmware.ksy
# Compare two binary files side-by-side
xvw --diff original.bin patched.bin
# Open a file directly with a specific sidebar panel
# (Options: files, strings, structure, inspector, map, checksum, bookmarks)
xvw binary.bin --panel map| Action | macOS | Linux / Windows |
|---|---|---|
| Move Cursor | h / j / k / l or Arrows |
h / j / k / l or Arrows |
| Expand Selection | Shift + h/j/k/l |
Shift + h/j/k/l |
| Jump to Start of File | Cmd + Home / Home |
Ctrl + Home / Home |
| Jump to End of File | Cmd + End / End |
Ctrl + End / End |
| Go to Offset / Address | Cmd + L / Ctrl + G |
Ctrl + L / Ctrl + G |
| Insert Custom Break | Enter |
Enter |
| Join Lines | Cmd + J |
Ctrl + J |
| Reset Custom Breaks | Cmd + Shift + Backspace |
Ctrl + Shift + Backspace |
| Toggle Insert / Overwrite | Insert |
Insert |
| Action | macOS | Linux / Windows |
|---|---|---|
| Search (Inline) | / or Cmd + F |
/ or Ctrl + F |
| Search Panel (Scan All) | Cmd + Shift + F |
Ctrl + Shift + F |
| Next / Prev Match | Cmd + G / Cmd + Shift + G |
F3 / Shift + F3 |
| Open File Dialog | Cmd + O |
Ctrl + O |
| Open Folder | Cmd + Shift + O |
Ctrl + Shift + O |
| Toggle Left Sidebar | Cmd + B |
Ctrl + B |
| Split Editor (Right / Down) | Cmd + \ / Cmd + Shift + D |
Ctrl + \ / Ctrl + Shift + D |
| Switch Tabs | Cmd + 1 .. Cmd + 9 |
Ctrl + 1 .. Ctrl + 9 |
Load Kaitai Struct (.ksy) |
Cmd + Shift + S |
Ctrl + Shift + S |
| Toggle Inline Structure | Cmd + Shift + V |
Ctrl + Shift + V |
| Copy as Hex Dump | Cmd + Shift + C |
Ctrl + Shift + C |
| Settings | Cmd + , |
Ctrl + , |
Decode and search binary data with built-in support for 40+ text encodings:
- Unicode & ASCII: UTF-8, UTF-16 LE, UTF-16 BE, ASCII
- Japanese: Shift-JIS (CP932 / Windows-31J), EUC-JP, ISO-2022-JP
- Chinese & Korean: GBK, GB18030, Big5, EUC-KR
- ISO-8859 Family: ISO-8859-1 through ISO-8859-16 (Latin 1–10, Cyrillic, Arabic, Greek, Hebrew, Celtic, etc.)
- Windows Code Pages: Windows-1250 through Windows-1258
- Legacy & Mac: KOI8-R, KOI8-U, Mac OS Roman, IBM866
Contributions, issues, and feature requests are very welcome!
- 🐛 Found a bug or have a suggestion? Please open an issue on GitHub.
- 💡 Want to contribute? Pull requests are always appreciated! Please check existing issues or start a discussion before making large architectural changes.
This project is licensed under the MIT License.




