Repository navigation
HexSpell 1.2.0
Read-only executable parsing now borrows file buffers and streams directory entries while retaining owned buffers for editing.
- PE: lazy base relocations, streaming imports/exports/relocations/debug records, borrowed names, deduplicated import descriptors, and an optional RVA lookup index.
- ELF: allocation-free header/entry inspection and borrowed section/symbol names.
- Mach-O: single-pass command iteration, allocation-free FAT selection, borrowed dylib paths, and disk-based selection that reads only the selected record and thin slice.
- Full parsers validate table extents before reserving capacity. Allocation regression tests and a dependency-free release benchmark cover the new paths.
- Includes the PE layout, load-configuration, debug-field, checksum, and structural-edit fixes documented in the changelog.
Breaking API migrations:
- Replace the
PE::base_relocationsfield withbase_relocations()?orbase_relocations_iter()?. Relocation validation is deferred until access or image-base editing. - Replace the
ImportDirectory::descriptorsfield withdescriptors()or each DLL'sdescriptorfield.
See the migration guide and changelog.
Validated with formatting, Clippy, the full test suite, no_std checks, all 12 pefile differential tests over a 15-file corpus, allocation tests, release benchmarks, and a clean package publish dry run.