README.md
</picture>
<a href="https://itinerarium.github.io/phoneme-synthesis/?w=/'ˈɪmhɛks/"><strong>/ˈɪmhɛks/</strong></a>
If you like my work, please consider supporting me on GitHub Sponsors, Ko-Fi or PayPal. Thanks a lot!
<p align="center"> <a href="https://github.com/sponsors/WerWolv"></a> <a href="https://ko-fi.com/WerWolv"></a> <a href="https://werwolv.net/donate"></a> </p>Would you like to appear here as well? Contact us at [email protected]!
<details> <summary><strong>More Screenshots</strong></summary>
</details>
The Pattern Language is the completely custom programming language developed for ImHex. It allows you to define structures and data types in a C-like syntax and then use them to parse and highlight a file's content.
For format patterns, libraries, magic and constant files, check out the ImHex-Patterns repository.
Feel free to PR your own files there as well!
To use ImHex, the following minimal system requirements need to be met.
[!IMPORTANT] ImHex requires a GPU with OpenGL 3.0 support in general. There are releases available (with the
-NoGPUsuffix) that are software rendered and don't require a GPU, however these can be a lot slower than the GPU accelerated versions.If possible at all, make ImHex use the dedicated GPU on your system instead of the integrated one. ImHex will usually run fine with integrated GPUs as well but certain Intel HD GPU drivers on Windows are known to cause graphical artifacts.
Information on how to install ImHex can be found in the Install guide
To compile ImHex on any platform, GCC (or Clang) is required with a version that supports C++23 or higher. Windows and Linux releases are being built using latest available GCC. MacOS releases are being built using latest available LLVM Clang.
Important to note is, the MSVC and AppleClang compilers are both NOT supported since they're both generally severely outdated and lack features GCC and LLVM Clang have.
[!NOTE] Many dependencies are bundled into the repository using submodules so make sure to clone it using the
--recurse-submodulesoption. All dependencies that aren't bundled, can be installed using the dependency installer scripts found in the/distfolder.
For more information, check out the Compiling guide.
See Contributing
To develop plugins for ImHex, use the following template project to get started. You then have access to the entirety of libimhex as well as the ImHex API and the Content Registry to interact with ImHex or to add new content. To build a plugin, you will need to use our SDK
You can build the SDK by compiling ImHex like this:
cmake -G Ninja -DIMHEX_BUNDLE_PLUGIN_SDK=ON -B buildcd buildDESTDIR=install ninja install
The SDK will then be available at install/usr/local/share/imhex/sdk. You will need to set the variable IMHEX_SDK_PATH to that (absolute) path.You can use this action to automatically download the SDK to your Github Runner
The biggest part of ImHex is under the GPLv2-only license. Notable exceptions to this are the following parts which are under the LGPLv2.1 license:
The reason for this is to allow for proprietary plugins to be developed for ImHex.
Free code signing provided by SignPath.io, certificate by SignPath Foundation.
This program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it.