Skip to content

Release v2.1.0

Choose a tag to compare

@albertize albertize released this 21 Mar 10:56
· 22 commits to master since this release

Release Notes - gref v2.1.0

Version 2.1.0 (March 21, 2026)

Performance & Search Engine

  • Whole-buffer Regex Matching: Implementation of bytes::Regex to leverage SIMD, Teddy, and Aho-Corasick optimizations on full file buffers.
  • SIMD Literal Pre-filtering: Integration of memchr::memmem::Finder (shared via Arc).
  • Line-Boundary Detection: SIMD-accelerated detection via memchr/memrchr for incremental line counting.
  • Pipelined Execution: Concurrent walk+search architecture where workers process files as discovered.
  • Dependencies: Added memchr (explicitly managed).

Skip Strategy & Filtering

  • Ignore Logic: Added gitignore.rs for .gitignore, .ignore, and .grefignore parsing with hierarchical rule merging and glob-to-regex conversion.
  • CLI Flags: Added --hidden and --no-ignore.
  • Windows Support: Hidden file detection via FILE_ATTRIBUTE_HIDDEN.
  • Zero-copy Path Filtering: Utilizes OsStr checks prior to entry.path() allocation.
  • Deferred Binary Detection: Extension-based lookup and SIMD null-byte scanning on loaded buffers.
  • Refactoring: Split file detection into classify_by_extension() and is_binary_content().

TUI Fixes

  • Scroll Logic: topline management moved exclusively to ui.rs to resolve scroll loops.
  • Rendering:
    • Lines truncated to screen_width - 1 to prevent auto-wrap.
    • Tab-to-space expansion prior to truncation.
  • Navigation: Fixed horizontal scroll maximum offset calculation.

Testing

  • Unit Tests: 41 (previously 25).
  • Stress Tests: 98 (previously 87).