# hexfiend/hexfiend

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/hexfiend-hexfiend).**

5,859 stars · 449 forks · Objective-C · BSD-2-Clause

## Links

- GitHub: https://github.com/HexFiend/HexFiend
- Homepage: https://hexfiend.com
- awesome-repositories: https://awesome-repositories.com/repository/hexfiend-hexfiend.md

## Description

HexFiend is a native macOS hex editor designed for opening and editing binary files of any size without loading them entirely into memory. It uses a 64-bit addressable data model with memory-mapped file access, enabling navigation of multi-gigabyte files while maintaining byte-level undo for insert and delete operations.

The editor distinguishes itself through a diff algorithm for binary file comparison that accounts for insertions and deletions, and a template-based structure parsing system that uses user-defined scripts to visualize binary file layouts. It also includes a typed data interpretation layer for inspecting raw bytes as integers, floats, and other types with configurable endianness and signedness.

Beyond its core editing capabilities, HexFiend provides fast search for byte patterns in large files and offers a permissively licensed framework for embedding hex views into other macOS applications. The project maintains a clean model-view-controller separation, allowing its binary data model to be reused across different applications.

## Tags

### Operating Systems & Systems Programming

- [Hex Editors](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/hex-editors.md) — Provides a native macOS hex editor for opening and modifying binary files of any size. ([source](https://github.com/HexFiend/HexFiend/blob/master/docs/ProjectsUsingHexFiend.md))
- [macOS](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/hex-editors/macos.md) — Ships a native macOS hex editor that opens and edits binary files of any size without loading them entirely into memory.
- [Binary File Comparisons](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-analysis-capabilities/binary-diffing/binary-file-comparisons.md) — Compares two binary files by detecting insertions and deletions using a custom diff algorithm.
- [Scriptable Structure Viewers](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-data-viewers/scriptable-structure-viewers.md) — Parses and displays binary file layouts using user-defined scripts or templates.
- [Live Interpreters](https://awesome-repositories.com/f/operating-systems-systems-programming/binary-metadata-inspection/live-interpreters.md) — Interprets raw bytes as integers, floats, and other types with configurable endianness and signedness.

### User Interface & Experience

- [Binary File Editors](https://awesome-repositories.com/f/user-interface-experience/data-table-generators/file-to-table-importers/binary-file-insertions/binary-file-insertions-with-insert-delete/binary-file-editors.md) — Ships a native macOS hex editor that opens and edits binary files of any size with insert, delete, and overwrite operations.
- [Binary File Insertions with Insert/Delete](https://awesome-repositories.com/f/user-interface-experience/data-table-generators/file-to-table-importers/binary-file-insertions/binary-file-insertions-with-insert-delete.md) — Provides byte-level insert and delete operations for binary files without requiring temporary disk space. ([source](http://ridiculousfish.com/hexfiend/docs/))
- [Binary Insert/Delete Operations](https://awesome-repositories.com/f/user-interface-experience/data-table-generators/file-to-table-importers/binary-file-insertions/binary-file-insertions-with-insert-delete/binary-insert-delete-operations.md) — Supports inserting and deleting bytes in binary files to enable structural changes beyond overwriting. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))
- [Binary Data Inspectors](https://awesome-repositories.com/f/user-interface-experience/real-time-visual-inspectors/binary-data-inspectors.md) — Interprets raw bytes as integers, floats, or other types with configurable endianness and signedness.

### Data & Databases

- [Large Binary Editors](https://awesome-repositories.com/f/data-databases/binary-size-calculation/large-binary-editors.md) — Opens and modifies binary files up to 64-bit addressable sizes without loading the entire file into memory. ([source](http://ridiculousfish.com/hexfiend/docs/))
- [Memory-Mapped File Access](https://awesome-repositories.com/f/data-databases/data-access-querying/memory-mapped-file-access.md) — Opens files by mapping them into virtual memory for navigating multi-gigabyte files without loading into RAM.
- [Template-Based Structure Parsers](https://awesome-repositories.com/f/data-databases/binary-and-text-file-parsing/template-based-structure-parsers.md) — Parses and displays binary file layouts using user-defined scripts or templates.
- [Binary Type Inspectors](https://awesome-repositories.com/f/data-databases/data-type-inspection/binary-type-inspectors.md) — Interprets raw bytes as integers, floats, or other types with configurable endianness and signedness. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))
- [Numeric Byte Interpreters](https://awesome-repositories.com/f/data-databases/data-type-inspection/numeric-byte-interpreters.md) — Interprets selected bytes as integers or floats with configurable endianness and signedness. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))
- [Typed Byte Inspectors](https://awesome-repositories.com/f/data-databases/data-type-inspection/typed-byte-inspectors.md) — Interprets raw bytes as integers, floats, or other types with configurable endianness and signedness. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))
- [Binary Structure Visualizers](https://awesome-repositories.com/f/data-databases/pack-file-structures/binary-structure-visualizers.md) — Uses scripts to parse and display the structure of binary files as structured views. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))

### Development Tools & Productivity

- [Typed Value Interpreters](https://awesome-repositories.com/f/development-tools-productivity/binary-inspection-frameworks/typed-value-interpreters.md) — Interprets raw bytes as integers, floats, and other types with configurable endianness and signedness.
- [Memory-Mapped File Editors](https://awesome-repositories.com/f/development-tools-productivity/large-file-editors/memory-mapped-file-editors.md) — Opens and navigates binary files up to hundreds of gigabytes using memory-mapped access without loading entirely into RAM.
- [Memory-Mapped Openers](https://awesome-repositories.com/f/development-tools-productivity/large-file-editors/memory-mapped-openers.md) — Opens and navigates files as large as 118 gigabytes without loading them entirely into memory. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))
- [Embeddable Hex View Frameworks](https://awesome-repositories.com/f/development-tools-productivity/application-development-frameworks/embedded-application-frameworks/embeddable-hex-view-frameworks.md) — Provides a permissively licensed framework for embedding hex views into other macOS applications.

### Programming Languages & Runtimes

- [Sparse Data Models](https://awesome-repositories.com/f/programming-languages-runtimes/webassembly-binary-manipulators/64-bit-memory-support/sparse-data-models.md) — Provides a sparse 64-bit addressable data model for editing binary files without loading them entirely.
- [Binary Structure Scripts](https://awesome-repositories.com/f/programming-languages-runtimes/go-shell-scripting-frameworks/structured-shell-scripting-languages/binary-structure-scripts.md) — Uses user-defined scripts to parse and display binary file layouts as structured views. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))

### Software Engineering & Architecture

- [Binary Diff Engines](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving/block-based-algorithms/binary-diff-engines.md) — Ships a custom binary diff engine that detects insertions and deletions between files.
- [Visual Binary Diff Tools](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving/block-based-algorithms/binary-diff-engines/visual-binary-diff-tools.md) — Compares binary files by accounting for insertions and deletions using a diff algorithm.

### Testing & Quality Assurance

- [Undo Architectures](https://awesome-repositories.com/f/testing-quality-assurance/uuid-generators/byte-level-constructions/undo-architectures.md) — Implements a byte-level undo architecture that records insert and delete operations without temporary disk space.

### Part of an Awesome List

- [Embeddable Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/hex-editors/embeddable-frameworks.md) — Provides a reusable framework for integrating hex or data views into other macOS applications.
- [Binary Structure Parsers](https://awesome-repositories.com/f/awesome-lists/devtools/text-processing-and-parsing/keyword-based-structural-parsing/binary-structure-parsers.md) — Uses user-defined scripts to parse binary file layouts and display structured views of data fields.
- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Listed in the “Developer Utilities” section of the Awesome Mac awesome list.

### Business & Productivity Software

- [Native View Embeds](https://awesome-repositories.com/f/business-productivity-software/view-management/declarative-view-embeds/native-view-embeds.md) — Embeds hex or data views into macOS applications without building the UI from scratch. ([source](https://cdn.jsdelivr.net/gh/hexfiend/hexfiend@master/README.md))

### Hardware & IoT

- [macOS Binary Data Embedding](https://awesome-repositories.com/f/hardware-iot/binary-embedded-file-systems/application-binary-embedding/macos-binary-data-embedding.md) — Provides a permissively licensed framework for embedding hex or data views into macOS applications.
