A browser-based tool for exploring binary files. It shows both hex and ASCII views, lets you search through memory, and makes it easy to select, copy, or export bytes. The heavy lifting is done in Rust, compiled to WebAssembly, with a React frontend for the interface.
I’ve always found hex editors fascinating, but most of the ones I’ve used are desktop-only and feel a bit dated. I wanted to see if I could bring that experience into the browser using Rust → WASM for performance and React for the UI.
This project gave me practice with:
- Compiling Rust to WebAssembly and exposing APIs to JavaScript
- Managing byte-level data efficiently in the browser
- Building a responsive interface for a pretty niche use case
- Hex + ASCII side-by-side views
- Search by ASCII or hex values
- Keyboard navigation and shift-selection
- Click and drag to select byte ranges
- Copy selections as hex or ASCII
- Export selections as
.binfiles - Responsive dark UI styled with Tailwind
cd core
wasm-pack build --target webcd ../frontend
npm install
npm run devThe frontend expects the WASM build, so build the core first.
- Open the app in your browser
- Drop in any
.bin,.rom,.img, or similar file - Navigate with keyboard or mouse
- Search, copy, or export regions as needed
- Bridging Rust and JavaScript with WASM
- Handling low-level data structures in a web environment
- Designing UIs for technical/debugging tools
- Thinking about performance in terms of both Rust code and frontend rendering
MIT © 2025 tommantonclery
