Releases: tunerok/ediHex
Release list
0.2b ediHex
ediHex 0.2b
A bugfix release for the hex editor text column.
Bug Fixes
Hex Editor
- Fixed the Text (decode) column clipping the right end of each row — trailing bytes were not shown at certain bytes-per-row settings (8, 16, 24, 32), especially with a larger system font size.
- Text column layout now measures the actual
.body.monospaced()character width at runtime instead of using a hardcoded value. - Each byte in the Text column is rendered in its own fixed-width slot, so decoded characters align with selection highlights and no longer get cut off by
lineLimit(1).
Requires macOS 15.6 or later.
0.2a ediHex
ediHex 0.2a
A major update focused on search, file comparison, and hex editing.
What's New
Find
- Search runs in the background with a progress indicator — the UI stays responsive on large files.
- Closing the Find panel no longer discards results — browse matches from Inspector → Find Results.
- Navigate matches with Previous / Next from the Inspector or the Edit menu.
Compare
- Compare with… — start a diff with the active file on the left (Tools menu or tab context menu).
- Jump between differences with F3 and ⇧F3.
- Inspector → Comparison shows scan progress, diff count, current offset, and navigation controls.
- Clearer diff highlighting and an improved minimap.
Hex Editor
- Cleaner selection and editing visuals when typing hex digits.
Bug Fixes
- Fixed data corruption when editing many bytes in sequence on an open file.
- Retyping the same value (e.g.
11on a byte that is already0x11) now moves to the next byte without marking the file as changed. - Compare view no longer shows wrong highlights after changing bytes per row.
- Diff navigation works correctly across multi-byte changes, files of different sizes, and at file boundaries.
- Fixed a crash when comparing files of unequal length.
- Scroll position is preserved more reliably while browsing and comparing.
Help
- Built-in help (⌘?) updated for Compare with…, diff navigation, and Find Results.
Requires macOS 15.6 or later.
ediHex 0.1
First stable release after 0.1b. This update focuses on creating new documents, fixing file save after edits, and hardening the test suite.
What's new
New File (⌘N)
- File → New menu command with ⌘N shortcut
- New File… button on the empty workspace screen (alongside Open)
- Prompts for a save location, creates a 1-byte file (
0x00), and opens it in the editor
Bug fixes
Save after insert, append, or delete
Fixed a bug in ByteArrayWriter when saving files that had in-memory edits (byte insertions, appends, or deletions). Chained internal write operations could read from the wrong source offset, producing corrupted output on disk. Saving now copies the full modified slice into a buffer first and writes each target range from the correct offset.
Other changes
- Expanded test coverage:
- Byte-array I/O edge cases (empty files, read-only protection, out-of-bounds reads)
- Save-after-modify scenarios (insert, append, delete)
- Terminal command parser, tokenizer, and offset parser
- Document pane terminal integration (
DocumentPaneViewModel)
Requirements
- macOS 15.6 or later
(Deprecated) 0.1b HexMac
HexMac 0.1b
Beta release focused on large-file performance, a reworked hex grid, and a much faster binary comparison workflow.
Highlights
- New byte-array engine — B+ tree with file-backed slices; large files stay on disk while edits live in memory. In-place save without temporary files; Save As streams through a bounded buffer.
- Virtual scrolling — viewport-based hex grid with row cache, overscan, background prefetch, and a dedicated vertical scrollbar.
- Faster file comparison — incremental diff mapping, per-row caching, and clearer diff highlighting via
HexDiffSpan. - Keyboard selection — move the caret and selection with arrow keys; the viewport scrolls automatically to keep the active byte visible.
Hex editor
- Reworked
HexGridView/HexRowViewlayout with offset column, viewport scroll view, and refined header. - Configurable bytes per row (8 / 16 / 24 / 32) and text encodings in the status bar.
- Color highlights with navigation in the Inspector panel.
- Improved histogram and hash tools for file and selection scopes.
Binary comparison
CompareRowCacheandDocumentRowCachefor smoother scrolling through large diffs.HexDiffSpanmodel for accurate, mergeable diff highlights.- Clamped range handling for unequal file sizes.
- Refactored compare grid layout with linked minimap scrolling.
Built-in terminal
goto end— jump to the last byte of the document.- Updated range and offset parsing for large files.
Other
- README updated with feature list, keyboard shortcuts, project structure, and screenshots.
- Minimum macOS version raised to 15.6.
- Expanded test coverage: byte-array I/O, scroll window, row loader, compare cache, diff spans, histogram builder, pattern search, terminal parser.
Requirements
- macOS 15.6 or later
Full changelog (0.1a → 0.1b)
- Refactor hex editor architecture with B+ tree byte array and file slices
- Add virtual viewport scrolling, row cache, and prefetch
- Enhance binary comparison with caching and incremental diff mapping
- Add keyboard selection movement and auto-scroll to selection
- Introduce
HexDiffSpandiff highlighting - Update README, screenshots, and status bar UI
- Add unit tests for new services and scroll behavior
(Deprecated) 0.1a HexMac
HexMac 0.1a — First public alpha
HexMac is a native macOS hex editor for inspecting, editing, and analyzing binary files. Built with SwiftUI and memory-mapped I/O, it is designed to stay responsive even with large files.
This is the first public alpha release. Feedback, bug reports, and contributions are welcome.
Hex editor
- Memory-mapped file access — open large files without loading them entirely into RAM
- In-place byte editing with undo/redo
- Configurable bytes per row (8, 16, 24, or 32)
- Text column with multiple encodings: ASCII, UTF-8, UTF-16 LE/BE, Latin-1, Windows-1252, Mac Roman
- Copy selection as hex, fill/clear selected bytes
- Color highlights with navigation in the Inspector panel
Workspace
- Tabbed editor groups (VS Code–style layout)
- Split panes horizontally or vertically
- Side-by-side binary comparison with diff minimap
Analysis tools
- Find — search by hex pattern or ASCII text across the file or selection
- Hash — MD5, SHA-1, SHA-224/256/384/512, SHA3-256/384/512 (file or selection)
- CRC — CRC-8/16/32 with 60+ industry presets (Modbus, USB, AUTOSAR, ISO-HDLC, …) and custom parameters
- Histogram — byte frequency distribution for the file or selection
- Inspector — offset, length, binary view, integer interpretations (LE/BE)
Built-in terminal
Scriptable command line inside each document pane. Type help for the full reference — goto, hex, bin, ascii, find, cmp, crc, hash, and more. Ranges support decimal and hex offsets, multiple segments, and sampling filters.
Requirements
- macOS 15.6 or later
Build from source
git clone https://github.com/tunerok/hexmac.git
cd hexmac
open HexMac.xcodeprojSelect the HexMac scheme and press Run (⌘R).
License
Released under the GNU General Public License v3.0.