Skip to content

HexSpell 1.2.0

Choose a tag to compare

@CaddyGlow CaddyGlow released this 10 Oct 22:11
· 21 commits to main since this release
359d50c

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_relocations field with base_relocations()? or base_relocations_iter()?. Relocation validation is deferred until access or image-base editing.
  • Replace the ImportDirectory::descriptors field with descriptors() or each DLL's descriptor field.

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.

Crate: https://crates.io/crates/caddy-hexspell/1.2.0