pg_hexedit
hx
pg_hexedit | hx | |
---|---|---|
1 | 5 | |
155 | 196 | |
- | - | |
3.6 | 2.8 | |
5 months ago | 5 months ago | |
C | C | |
GNU General Public License v3.0 or later | MIT License |
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.
pg_hexedit
-
Tweak: An Efficient Hex Editor
I am the author of a tool that generates wxHexEditor tags and annotations for Postgres relation files -- pg_hexedit:
https://github.com/petergeoghegan/pg_hexedit
I've invested quite a lot of effort in it, and it would be nice to have support for multiple hex editors. That was anticipated to some degree:
https://github.com/petergeoghegan/pg_hexedit#supporting-othe...
I understand why you favor a declarative template format for describing files with tags -- that probably scales really nicely. What I'm doing is pretty grotty, but works surprisingly well in practice. I procedurally generate a description of each file in a shell script, and then open the file in wxHexEditor. I'm generating huge XML files, which is slow, but there are simple workarounds to get acceptable performance.
wxHexEditor doesn't support declarative tags. But even if it did I might not want to use them; the on-disk format of PostgreSQL is much more complicated than most file formats, and isn't supposed to be consumed by third party tools. Writing a C program that uses the struct definitions from the server itself makes the complexity quite manageable -- the tool is basically feature complete, even though I haven't spent a huge amount of time on it.
That said, it would be great if I could adapt pg_hexedit to a hex editor that had some kind of "best of both worlds" support for tags - tags that can be generated lazily and on-demand, when a portion of the file needs to be drawn or redrawn. This would be easy to adapt to -- Postgres relation files always consist of a series of 8KiB blocks/pages. My tool can easily generate tags for any single block without knowing any special context or having any expensive-to-generate state -- I just need a block number (i.e. an 8KiB-aligned byte offset).
hx
- hx: Hex editor for the terminal using plain C99 + POSIX libs
- Project Was Stolen
-
What's a small Linux program that you don't give much thought but makes your life a hundred times easier from time to time?
hx a vim-like hex editor in your terminal. It's amazing, and i use it all the time.
-
My favorite cli/tui programs:
hx - hex editor
-
100k members! To celebrate, what is your favorite piece of C code you have written?
My Hex editor 'hx' . It started as a learning project but actually grew into something useful :D
What are some alternatives?
HexManiacAdvance - A tool for editing tables, text, scripts, images, and other data in Pokemon GBA games
smenu - smenu started as a lightweight and flexible terminal menu generator, but quickly evolved into a powerful and versatile CLI selection tool for interactive or scripting use.
pg_net - A PostgreSQL extension that enables asynchronous (non-blocking) HTTP/HTTPS requests with SQL
Vim - The official Vim repository
HexFiend - A fast and clever hex editor for macOS
zoxide - A smarter cd command. Supports all major shells.
hem-hashes - Hiew External Module (HEM) to calculate CRC-32, MD5, SHA-1, and SHA-256 hashes of a given file/block
tmux - tmux source code
pg_auto_failover - Postgres extension and service for automated failover and high-availability
rofi - Rofi: A window switcher, application launcher and dmenu replacement
hexing - Graphical and minimalistic hex editor.
fd - A simple, fast and user-friendly alternative to 'find'