Skip to content

Releases: awnion/fastgrep

v0.1.7

06 Mar 23:30
b5c6be4

Choose a tag to compare

New features

  • --json — emit JSON Lines output for machine parsing. Each record has a type field (match, context, path, summary, warning) with structured data including submatches with byte offsets, truncation metadata, and file size warnings

Performance

  • Optimized search hot path and walker scheduling for faster parallel traversal

Build

  • Build script always recomputes git SHA for accurate --version output

Testing

  • 207 integration tests (up from 204)

v0.1.6

06 Mar 00:14
v0.1.6
3f0ca26

Choose a tag to compare

New flags

  • -q / --quiet / --silent — suppress all output, exit with status 0 on match
  • -h / --no-filename — suppress filename prefix in multi-file output
  • -H / --with-filename — force filename prefix even for single file
  • --exclude-dir=GLOB — skip directories matching the glob pattern
  • -L / --files-without-match — print names of files with no matches
  • -m NUM / --max-count=NUM — stop reading a file after NUM matches
  • --colour — alias for --color
  • -s / --no-messages — suppress error messages about nonexistent or unreadable files
  • --group-separator=SEP / --no-group-separator — customize or disable the context group separator
  • -b / --byte-offset — print byte offset of each matching line
  • -I — equivalent to --binary-files=without-match
  • -f FILE / --file=FILE — read patterns from a file (one per line)
  • --no-ignore-case — cancel a preceding -i
  • -x / --line-regexp — match only whole lines
  • --label=LABEL — use LABEL as filename for stdin
  • -T / --initial-tab — align content after prefix with a tab (GNU grep compatible field widths)
  • -Z / --null — print NUL byte after filenames
  • --exclude-from=FILE — read exclude globs from a file
  • -a / --text — process binary files as text
  • -U / --binary — do not strip CR characters (no-op on Unix, accepted for compatibility)

Improvements

  • Baseline benchmark separated from default cargo bench
  • README updated with -o/-A/-B/-C examples and corrected unsupported flags list

Testing

  • 204 integration tests (up from 125)

v0.1.5

05 Mar 19:57
v0.1.5
e0bb832

Choose a tag to compare

Improvements

  • Trigram index now carries a format version; incompatible or corrupted indexes are automatically deleted and rebuilt
  • --version output shows the index format version

Testing

  • Integration tests split into 9 focused modules (basic matching, flags, files/recursive, stdin, edge cases, binary, only-matching, context, regression)
  • Added rstest for parametrized test cases, reducing boilerplate

v0.1.4

05 Mar 13:45
v0.1.4
0884417

Choose a tag to compare

v0.1.4

v0.1.3

05 Mar 13:08
v0.1.3
343be95

Choose a tag to compare

Packaging

  • Release binaries are now distributed as .tar.gz archives
  • Added one-line install commands for Linux (musl) and macOS in README

v0.1.2

05 Mar 12:53
v0.1.2
ba606bf

Choose a tag to compare

CI/CD

  • Reusable workflow architecture (_lint.yml, _test.yml, _build.yml)
  • Release pipeline: lint → test → build → smoke-test → publish (crates.io + GitHub Releases)
  • Nightly toolchain for rustfmt and clippy in CI
  • Release tests run under --release profile
  • Added x86_64-unknown-linux-musl and aarch64-unknown-linux-musl build targets
  • Parallel lint jobs (format, clippy, docs run concurrently)
  • GitHub Releases with platform binaries and changelog