Libraries
ImHex
Libraries | ImHex | |
---|---|---|
2 | 46 | |
92 | 33,196 | |
- | - | |
9.6 | 9.9 | |
6 days ago | about 10 hours ago | |
C# | C++ | |
- | GNU General Public License v3.0 only |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Libraries
-
Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
My personal IMGUI library [1] is what I call "partially retained" in that there is an immediate mode API similar to dear imgui or nuklear on top, but under the hood the immediate mode API just manages retained mode object graphs for you automatically.
This is a fantastic (imo) way to build user interfaces, because sometimes the most convenient way to manage state or construct a complex widget is to write a retained mode object that hosts some other child objects, and in other circumstances it's most convenient to write a modal dialog or something by just slamming out some imgui code in a standalone function.
I also think the imgui approach to layout (use an algorithm that can fully reconstruct your layout from scratch every frame without much of a performance penalty) removes a lot of potential bugs and quirks that are common in UI, like one-frame glitches or having to manually propagate state through a bunch of objects and layers. Though imgui approaches have their own downsides, like the "page tearing" issue. I've had to do some weird contortions to solve that one in my own code and I still get bugs occasionally.
1: https://github.com/sq/Libraries/tree/master/Squared/PRGUI
-
Leveraging Rust and the GPU to render user interfaces at 120 FPS
I haven't found good platform accessibility API bindings for C#, so right now it just has narration support, adjustable text size/contrast, and full keyboard navigation. I'm hoping that later on in my project's development process I'll have the budget to hire someone to try and fully integrate with the platform APIs - it's designed so it will be possible by pushing updates to the retained model.
The way it works is that it has an immediate mode API (see https://github.com/sq/Libraries/blob/0ca01d949e3df5fabb1440d... for a simple example of the API) and then under the hood it uses a lightweight retained-mode graph, which means that when it's more convenient you can just write more traditional classes and components. In practice most of the UI I've written for my main project is a mix of both models, like for example an editor popup window uses IMGUI-style API while the items in a virtual listbox are represented by a small custom component.
It does have a full imgui-style layout engine under the hood instead of doing retained-mode layout, so it's able to fully re-generate layout from scratch every frame, and to minimize page tearing there is a system where components can request a second relayout pass (typically used for things like text autosize).
Here's a more complex mixed-mode example from one of my development tools: https://gist.github.com/kg/6a6ba42d5019b546858a2b18751de019
ImHex
-
Ask HN: What Underrated Open Source Project Deserves More Recognition?
ImHex
“A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.”
I actually used it not too long ago to inspect why a mp4 file wasn’t valid. The pattern language that they have is quite nice and having sections of the hex highlighted and being able to see what structures they represent and what data was on those structures was very useful!
https://github.com/WerWolv/ImHex
-
Spectrum Analyser, a Sinclair ZX Spectrum reverse engineering tool
Just one note: Please use UI scaling; it's near impossible to read on a 150% 4k screen (much less on 100%). Unfortunately, young eyes don't last forever.
The UI looks very much like ImHex (https://imhex.werwolv.net/) is this a coincidence, or is it the standard ImGui look and feel?
I wish ImHex had a decompiler for Z80 as well, but this is much better.
-
Immediate Mode GUI Programming
I didn't use RemedyBG or Tracy, but I did try ImHex (https://github.com/WerWolv/ImHex) and it loaded 12% of the CPU because everything is being repainted 60 times per second. Heck, it even has an option to limit the FPS, which solves the CPU load a bit, but at the same time results in sluggish input because the event handling is tied to the drawing frequency.
So yes, the experience was not good, and I don't see what these tools would lose by using a proper GUI. I don't want every utility to drain my laptop battery like a decent video game.
ImGui is great if you already have a loop where everything is unconditionally redrawn every frame, but otherwise it's a really odd choice for an end-user application.
-
The Hiew Hex Editor
I now use ImHex after looking for years for a good one. It has a pattern language to provide highlighting.
https://imhex.werwolv.net/
- Parsing an Undocumented File Format
-
Dear ImGui: Bloat-free Graphical User interface with minimal dependencies
ImGui is brilliant. I can highly recommend this hex editor built using it: https://github.com/WerWolv/ImHex
-
[Tutorial] How to manually change FOV (SoC, CS, & CoP)
Download a hex editor such as ImHex and open it. I'd recommend downloading the portable version of whatever hex editor you are using if it's offered. That way you don't have to install the program and can instantly delete it off your drive when you're done.
-
What was your first open source contribution?
Probably https://github.com/WerWolv/ImHex/pull/509
-
Visual IDE research feedback
"It seems from reading the post that the scope of the project is already way too large. This a decades-long project (for a single dev). But most (maybe all) of what's being offered already exists." My googling shows them existing as singular (or a few) features but not in a cohesive package; the "closest" one I could find is https://github.com/WerWolv/ImHex.
-
Hexyl: A command-line hex viewer
If you want a true Hex Editor (or better, Hex IDE), I strongly suggest you to take a look ad ImHex [1].
[1]: https://github.com/WerWolv/ImHex
What are some alternatives?
rerun - Visualize streams of multimodal data. Fast, easy to use, and simple to integrate. Built in Rust using egui.
ImHex-Patterns - Hex patterns, include patterns and magic files for the use with the ImHex Hex Editor
imgui - Dear ImGui: Bloat-free Graphical User interface for C++ with minimal dependencies
catsight - Cross-platform process memory inspector
msdfgen - Multi-channel signed distance field generator
x64dbg - An open-source user mode debugger for Windows. Optimized for reverse engineering and malware analysis.
egui - egui: an easy-to-use immediate mode GUI in Rust that runs on both web and native
pycdc - C++ python bytecode disassembler and decompiler
extfstools - Tools for extracting files from ext2,3,4 filesystem images
XMachOViewer - XMachOViewer is a Mach-O viewer for Windows, Linux and MacOS
SonyHeadphonesClient - A {Windows, macOS, Linux} client recreating the functionality of the Sony Headphones app
PINCE - Reverse engineering tool for linux games