Skip to content

Releases: tunerok/ediHex

0.2b ediHex

Choose a tag to compare

@tunerok tunerok released this 30 Jun 13:17

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

Choose a tag to compare

@tunerok tunerok released this 21 Jun 17:35

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. 11 on a byte that is already 0x11) 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

Choose a tag to compare

@tunerok tunerok released this 20 Jun 18:23

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

Choose a tag to compare

@tunerok tunerok released this 19 Jun 22:01

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 / HexRowView layout 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

  • CompareRowCache and DocumentRowCache for smoother scrolling through large diffs.
  • HexDiffSpan model 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 HexDiffSpan diff highlighting
  • Update README, screenshots, and status bar UI
  • Add unit tests for new services and scroll behavior

(Deprecated) 0.1a HexMac

Choose a tag to compare

@tunerok tunerok released this 19 Jun 12:06

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.xcodeproj

Select the HexMac scheme and press Run (⌘R).

License

Released under the GNU General Public License v3.0.