Skip to content

Commit 3d9ca16

Browse files
committed
chore: changelog
1 parent 9480dfc commit 3d9ca16

1 file changed

Lines changed: 57 additions & 0 deletions

File tree

CHANGELOG.md

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# Changelog
2+
3+
## v0.1.0 — Initial Release
4+
5+
### Hex Viewer
6+
- Interactive TUI hex viewer built with ratatui + crossterm
7+
- Color-coded byte display by category (null, whitespace, printable ASCII, 0xFF, other)
8+
- Configurable layout: 16 or 32 bytes per row (`w`), resizable decode panel (`[` / `]`)
9+
- Mouse scroll support in hex view, decode panel, and stats panel
10+
- Goto offset by hex (`0x...`) or decimal (`g`)
11+
- Page Up/Down, Home/End, Shift+Up/Down for fast navigation
12+
13+
### Selection
14+
- Modal visual selection: press `v` to anchor, arrows to extend, `v` to confirm, `Esc` to cancel
15+
- Byte-level and bit-level selection modes (`b` to toggle)
16+
- Endianness toggle between little-endian and big-endian (`e`)
17+
18+
### Built-in Decoders
19+
- Raw formats: hex, binary, octal
20+
- Integers: u8/i8, u16/i16, u32/i32, u64/i64 (endian-aware)
21+
- Floats: f32, f64 (endian-aware)
22+
- Unix timestamps (32-bit and 64-bit)
23+
- Strings: ASCII and UTF-8
24+
- Selection metadata: byte length, entropy, compressibility, sparsity, unique byte count
25+
26+
### Decode Panel
27+
- Auto-updating decode panel showing all interpretations for the current selection
28+
- Color-coded range highlighting: decoder fields are color-mapped in both the decode panel and hex view
29+
- Focus cycling with Tab/Shift-Tab to highlight individual decoded fields with bracket markers
30+
31+
### Stats Panel
32+
- Toggleable stats panel (`s`) with per-field entropy, compressibility, null count, and unique byte count
33+
- Scrollable with `{` / `}` and mouse wheel
34+
35+
### Plugin System — Lua
36+
- Load `.lua` decoder scripts from `~/.config/turbohex/decoders/`
37+
- Sandboxed Lua runtime (table/string/utf8/math only — no filesystem or OS access)
38+
- ABI: `decode(bytes_table, endian_string, params_table)` returns `{{label, value, offset?, length?}}`
39+
- Optional `params()` export for configurable parameters
40+
- Example decoder auto-generated on first run
41+
42+
### Plugin System — WASM
43+
- Load `.wasm` decoder modules from `~/.config/turbohex/decoders/`
44+
- No WASI required — pure computation modules
45+
- ABI: exports `alloc(i32)->i32` and `decode(ptr, len, endian)->i32` returning NUL-terminated JSON
46+
- Optional `params()` and `decode_with_params()` exports for configurable parameters
47+
- Fuel-limited execution (10M instructions) to prevent runaway modules
48+
- Includes Rust and C example decoder projects
49+
50+
### Decoder Settings
51+
- Interactive decoder settings UI (`d`) to enable/disable individual decoders
52+
- Per-decoder parameter editing with type validation (string, int, bool, choice)
53+
54+
### Developer Experience
55+
- `turbohex --skills` prints an LLM-friendly decoder development guide
56+
- Large file support via memory-mapped I/O (files >= 1MB)
57+
- MIT licensed

0 commit comments

Comments
 (0)