All Versions
51
Latest Version
Avg Release Cycle
85 days
Latest Release
1043 days ago

Changelog History
Page 1

  • v13.0.0 Changes

    June 12, 2021

    ๐Ÿš€ ripgrep 13 is a new major version release of ripgrep that primarily contains ๐Ÿ› bug fixes, some performance improvements and a few minor breaking changes. ๐Ÿ”’ There is also a fix for a security vulnerability on Windows (CVE-2021-3013).

    Some highlights:

    A new short flag, -., has been added. It is an alias for the --hidden flag, which instructs ripgrep to search hidden files and directories.

    ripgrep is now using a new vectorized implementation of memmem, ๐ŸŽ which accelerates many common searches. If you notice any performance regressions (or major improvements), I'd love to hear about them through an issue report!

    ๐Ÿ Also, for Windows users targeting MSVC, Cargo will now build fully static ๐Ÿš€ executables of ripgrep. The release binaries for ripgrep 13 have been compiled ๐Ÿ”ง using this configuration.

    ๐Ÿ’ฅ BREAKING CHANGES:

    Binary detection output has changed slightly.

    ๐Ÿš€ In this release, a small tweak has been made to the output format when a binary file is detected. Previously, it looked like this:

    Binary file FOO matches (found "\0" byte around offset XXX)
    

    Now it looks like this:

    FOO: binary file matches (found "\0" byte around offset XXX)
    

    ๐Ÿ–จ vimgrep output in multi-line now only prints the first line for each match.

    ๐Ÿ‘€ See issue 1866 for more discussion on this. Previously, every line in a match was duplicated, even when it spanned multiple lines. There are no changes to vimgrep output when multi-line mode is disabled.

    In multi-line mode, --count is now equivalent to --count-matches.

    This appears to match how pcre2grep implements --count. Previously, ripgrep would produce outright incorrect counts. Another alternative would be to simply count the number of lines---even if it's more than the number of matches---but ๐Ÿ‘€ that seems highly unintuitive.

    ๐Ÿ›  FULL LIST OF FIXES AND IMPROVEMENTS:

    ๐Ÿ”’ Security fixes:

    • CVE-2021-3013: Fixes a security hole on Windows where running ripgrep with either the -z/--search-zip or --pre flags can result in running arbitrary executables from the current directory.
    • VULN #1773: This is the public facing issue tracking CVE-2021-3013. ripgrep's README now contains a section describing how to report a vulnerability.

    ๐ŸŽ Performance improvements:

    • PERF #1657: Check if a file should be ignored first before issuing stat calls.
    • PERF memchr#82: ripgrep now uses a new vectorized implementation of memmem.

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for ASP, Bazel, dvc, FlatBuffers, Futhark, minified files, Mint, pofiles (from GNU gettext) Racket, Red, Ruby, VCL, Yang.
    • FEATURE #1404: ripgrep now prints a warning if nothing is searched.
    • FEATURE #1613: Cargo will now produce static executables on Windows when using MSVC.
    • FEATURE #1680: Add -. as a short flag alias for --hidden.
    • FEATURE #1842: Add --field-{context,match}-separator for customizing field delimiters.
    • FEATURE #1856: The README now links to a Spanish translation.

    ๐Ÿ› Bug fixes:

    • BUG #1277: Document cygwin path translation behavior in the FAQ.
    • BUG #1739: Fix bug where replacements were buggy if the regex matched a line terminator.
    • BUG #1311: Fix multi-line bug where a search & replace for \n didn't work as expected.
    • BUG #1401: Fix buggy interaction between PCRE2 look-around and -o/--only-matching.
    • BUG #1412: Fix multi-line bug with searches using look-around past matching lines.
    • BUG #1577: Fish shell completions will continue to be auto-generated.
    • BUG #1642: Fixes a bug where using -m and -A printed more matches than the limit.
    • BUG #1703: Clarify the function of -u/--unrestricted.
    • BUG #1708: Clarify how -S/--smart-case works.
    • BUG #1730: Clarify that CLI invocation must always be valid, regardless of config file.
    • BUG #1741: Fix stdin detection when using PowerShell in UNIX environments.
    • BUG #1756: Fix bug where foo/** would match foo, but it shouldn't.
    • BUG #1765: Fix panic when --crlf is used in some cases.
    • BUG #1638: Correctly sniff UTF-8 and do transcoding, like we do for UTF-16.
    • BUG #1816: Add documentation for glob alternate syntax, e.g., {a,b,..}.
    • BUG #1847: Clarify how the --hidden flag works.
    • BUG #1866: Fix bug when computing column numbers in --vimgrep mode.
    • BUG #1868: Fix bug where --passthru and -A/-B/-C did not override each other.
    • BUG #1869: Clarify docs for --files-with-matches and --files-without-match.
    • BUG #1878: Fix bug where \A could produce unanchored matches in multiline search.
    • BUG 94e4b8e3: Fix column numbers with --vimgrep is used with -U/--multiline.
  • v12.1.1 Changes

    May 29, 2020

    ๐Ÿš€ ripgrep 12.1.1 is a patch release that fixes a couple small bugs. In
    ๐Ÿš€ particular, the ripgrep 12.1.0 release did not tag new releases for all of its
    in-tree dependencies. As a result, ripgrep built dependencies from crates.io
    ๐Ÿ— would produce a different build than compiling ripgrep from source on the
    ๐Ÿš€ 12.1.0 tag. Namely, some crates like grep-cli had unreleased changes.

    In case you haven't heard of it before, ripgrep is a line-oriented search
    tool that recursively searches your current directory for a regex pattern.
    0๏ธโƒฃ By default, ripgrep will respect your gitignore rules and automatically skip
    hidden files/directories and binary files.

    ๐Ÿ› Bug fixes:

    • BUG #1581:
      Corrects some egregious markup output in --help.
    • BUG #1591:
      ๐Ÿ“„ Mention the special $0 capture group in docs for the -r/--replace flag.
    • BUG #1602:
      ๐Ÿ›  Fix failing test resulting from out-of-sync dependencies.
  • v12.1.0 Changes

    May 09, 2020

    ๐Ÿš€ ripgrep 12.1.0 is a small minor version release that mostly includes bug fixes
    ๐Ÿ“š and documentation improvements. This release also contains some important
    ๐Ÿ“ฆ notices for downstream packagers.

    In case you haven't heard of it before, ripgrep is a line-oriented search
    tool that recursively searches your current directory for a regex pattern. By
    0๏ธโƒฃ default, ripgrep will respect your .gitignore and automatically skip hidden
    files/directories and binary files.

    ๐Ÿ“ฆ Notices for downstream ripgrep package maintainers:

    • ๐Ÿš€ Fish shell completions will be removed in the ripgrep 13 release.
      ๐Ÿ‘€ See #1577
      for more details.
    • ripgrep has switched from a2x to asciidoctor to generate the man page.
      If asciidoctor is not present, then ripgrep will currently fall back to
      ๐Ÿš€ a2x. Support for a2x will be dropped in the ripgrep 13 release.
      ๐Ÿ‘€ See #1544
      for more details.

    ๐Ÿ”‹ Feature enhancements:

    • FEATURE #1547:
      ๐Ÿ‘Œ Support decompressing .Z files via uncompress.

    ๐Ÿ› Bug fixes:

    • BUG #1252:
      โž• Add a section on the --pre flag to the GUIDE.
    • BUG #1339:
      ๐Ÿ‘Œ Improve error message when a pattern with invalid UTF-8 is provided.
    • BUG #1524:
      Note how to escape a $ when using --replace.
    • BUG #1537:
      ๐Ÿ›  Fix match bug caused by inner literal optimization.
    • BUG #1544:
      ripgrep now uses asciidoctor instead of a2x to generate its man page.
    • BUG #1550:
      Substantially reduce peak memory usage when searching wide directories.
    • BUG #1571:
      โž• Add note about configuration files in --type-{add,clear} docs.
    • BUG #1573:
      ๐Ÿ›  Fix incorrect --count-matches output when using look-around.
  • v12.0.1 Changes

    March 29, 2020

    ๐Ÿš€ ripgrep 12.0.1 is a small patch release that includes a minor bug fix relating
    to superfluous error messages when searching git repositories with sub-modules.
    ๐Ÿš€ This was a regression introduced in the 12.0.0 release.

    In case you haven't heard of it before, ripgrep is a line-oriented search
    tool that recursively searches your current directory for a regex pattern. By
    0๏ธโƒฃ default, ripgrep will respect your .gitignore and automatically skip hidden
    files/directories and binary files.

    ๐Ÿ› Bug fixes:

    • BUG #1520:
      Don't emit spurious error messages in git repositories with submodules.
  • v12.0.0 Changes

    March 15, 2020

    ๐Ÿš€ ripgrep 12 is a new major version release of ripgrep that contains many bug
    ๐Ÿ›  fixes, several important performance improvements and a few minor new features.

    In case you haven't heard of it before, ripgrep is a line-oriented search
    tool that recursively searches your current directory for a regex pattern. By
    0๏ธโƒฃ default, ripgrep will respect your .gitignore and automatically skip hidden
    files/directories and binary files.

    ๐Ÿš€ In a near future release, I am hoping to add an
    indexing feature
    ๐Ÿ— to ripgrep, which will dramatically speed up searching by building an index.
    Feedback would very much be appreciated, especially on the user experience
    which will be difficult to get right.

    ๐Ÿš€ This release has no known breaking changes.

    ๐Ÿ—„ Deprecations:

    • ๐Ÿ—„ The --no-pcre2-unicode flag is deprecated. Instead, use the --no-unicode
      0๏ธโƒฃ flag, which applies to both the default regex engine and PCRE2. For now,
      --no-pcre2-unicode and --pcre2-unicode are aliases to --no-unicode
      and --unicode, respectively. The --[no-]pcre2-unicode flags may be
      โœ‚ removed in a future release.
    • ๐Ÿ—„ The --auto-hybrid-regex flag is deprecated. Instead, use the new --engine
      flag with the auto value.

    ๐ŸŽ Performance improvements:

    • PERF #1087:
      ripgrep is smarter when detected literals are whitespace.
    • PERF #1381:
      Directory traversal is sped up with speculative ignore-file existence checks.
    • PERF cd8ec38a:
      ๐Ÿ‘Œ Improve inner literal detection to cover more cases more effectively.
      e.g., +Sherlock Holmes + now has Sherlock Holmes extracted instead
      of .
    • PERF 6a0e0147:
      ๐Ÿ‘Œ Improve literal detection when the -w/--word-regexp flag is used.
    • PERF ad97e9c9:
      ๐Ÿ‘Œ Improve overall performance of the -w/--word-regexp flag.

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for erb, diff, Gradle, HAML, Org,
      โœ๏ธ Postscript, Skim, Slim, Slime, RPM Spec files, Typoscript, xml.
    • FEATURE #1370:
      โž• Add --include-zero flag that shows files searched without matches.
    • FEATURE #1390:
      โž• Add --no-context-separator flag that always hides context separators.
    • FEATURE #1414:
      โž• Add --no-require-git flag to allow ripgrep to respect gitignores anywhere.
    • FEATURE #1420:
      โž• Add --no-ignore-exclude to disregard rules in .git/info/exclude files.
    • FEATURE #1466:
      โž• Add --no-ignore-files flag to disable all --ignore-file flags.
    • FEATURE #1488:
      โž• Add '--engine' flag for easier switching between regex engines.
    • FEATURE 75cbe88f:
      โž• Add --no-unicode flag. This works on all supported regex engines.

    ๐Ÿ› Bug fixes:

    • BUG #1291:
      ripgrep now works in non-existent directories.
    • BUG #1319:
      ๐Ÿ›  Fix match bug due to errant literal detection.
    • ๐Ÿ› BUG #1335:
      ๐Ÿ›  Fixes a performance bug when searching plain text files with very long lines.
      ๐ŸŽ This was a serious performance regression in some cases.
    • BUG #1344:
      Document usage of --type all.
    • BUG #1389:
      ๐Ÿ›  Fixes a bug where ripgrep would panic when searching a symlinked directory.
    • BUG #1439:
      ๐Ÿ‘Œ Improve documentation for ripgrep's automatic stdin detection.
    • BUG #1441:
      โœ‚ Remove CPU features from man page.
    • BUG #1442,
      BUG #1478:
      ๐Ÿ‘Œ Improve documentation of the -g/--glob flag.
    • BUG #1445:
      ripgrep now respects ignore rules from .git/info/exclude in worktrees.
    • BUG #1485:
      ๐Ÿš€ Fish shell completions from the release Debian package are now installed to
      /usr/share/fish/vendor_completions.d/rg.fish.
  • v11.0.2 Changes

    August 01, 2019

    ๐Ÿš€ ripgrep 11.0.2 is a new patch release that fixes a few bugs, including a
    ๐ŸŽ performance regression and a matching bug when using the -F/--fixed-strings
    flag.

    In case you haven't heard of it before, ripgrep is a line-oriented search
    tool that recursively searches your current directory for a regex pattern. By
    0๏ธโƒฃ default, ripgrep will respect your .gitignore and automatically skip hidden
    files/directories and binary files.

    ๐Ÿ”‹ Feature enhancements:

    • FEATURE #1293:
      โž• Added --glob-case-insensitive flag that makes --glob behave as --iglob.

    ๐Ÿ› Bug fixes:

    • BUG #1246:
      โž• Add translations to README, starting with an unofficial Chinese translation.
    • BUG #1259:
      ๐Ÿ›  Fix bug where the last byte of a -f file was stripped if it wasn't a \n.
    • BUG #1261:
      Document that no error is reported when searching for \n with -P/--pcre2.
    • BUG #1284:
      Mention .ignore and .rgignore more prominently in the README.
    • BUG #1292:
      ๐Ÿ›  Fix bug where --with-filename was sometimes enabled incorrectly.
    • BUG #1268:
      ๐Ÿ›  Fix major performance regression in GitHub x86_64-linux binary release.
    • BUG #1302:
      ๐Ÿ‘‰ Show better error messages when a non-existent preprocessor command is given.
    • BUG #1334:
      ๐Ÿ›  Fix match regression with -F flag when patterns contain meta characters.
  • v11.0.1 Changes

    April 16, 2019

    ๐Ÿš€ ripgrep 11.0.1 is a new patch release that fixes a search regression introduced
    ๐Ÿš€ in the previous 11.0.0 release. In particular, ripgrep can enter an infinite
    loop for some search patterns when searching invalid UTF-8.

    ๐Ÿ› Bug fixes:

    • BUG #1247:
      ๐Ÿ›  Fix search bug that can cause ripgrep to enter an infinite loop.
  • v11.0.0 Changes

    April 15, 2019

    ๐Ÿš€ ripgrep 11 is a new major version release of ripgrep that contains many bug ๐Ÿ›  fixes, some performance improvements and a few feature enhancements. Notably, ๐Ÿ‘€ ripgrep's user experience for binary file filtering has been improved. See the [guide's new section on binary data](GUIDE.md#binary-data) for more details.

    ๐Ÿš€ This release also marks a change in ripgrep's versioning. Where as the previous ๐Ÿ”– version was 0.10.0, this version is 11.0.0. Moving forward, ripgrep's major version will be increased a few times per year. ripgrep will continue to be conservative with respect to backwards compatibility, but may occasionally introduce breaking changes, which will always be documented in this CHANGELOG. ๐Ÿ‘€ See issue 1172 for a bit more detail on why this versioning change was made.

    ๐Ÿ‘ This release increases the minimum supported Rust version from 1.28.0 to 1.34.0.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • ripgrep has tweaked its exit status codes to be more like GNU grep's. Namely, if a non-fatal error occurs during a search, then ripgrep will now always emit a 2 exit status code, regardless of whether a match is found or not. Previously, ripgrep would only emit a 2 exit status code for a catastrophic error (e.g., regex syntax error). One exception to this is if ripgrep is run with -q/--quiet. In that case, if an error occurs and a match is found, then ripgrep will exit with a 0 exit status code.
    • Supplying the -u/--unrestricted flag three times is now equivalent to supplying --no-ignore --hidden --binary. Previously, -uuu was equivalent to --no-ignore --hidden --text. The difference is that --binary disables binary file filtering without potentially dumping binary data into your terminal. That is, rg -uuu foo should now be equivalent to grep -r foo.
    • ๐Ÿšš The avx-accel feature of ripgrep has been removed since it is no longer necessary. All uses of AVX in ripgrep are now enabled automatically via runtime CPU feature detection. The simd-accel feature does remain available (only for enabling SIMD for transcoding), however, it does increase compilation times substantially at the moment.

    ๐ŸŽ Performance improvements:

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for Apache Thrift, ASP, Bazel, Brotli, BuildStream, bzip2, C, C++, Cython, gzip, Java, Make, Postscript, QML, Tex, XML, xz, zig and zstd.
    • FEATURE #855: Add --binary flag for disabling binary file filtering.
    • FEATURE #1078: Add --max-columns-preview flag for showing a preview of long lines.
    • FEATURE #1099: Add support for Brotli and Zstd to the -z/--search-zip flag.
    • FEATURE #1138: Add --no-ignore-dot flag for ignoring .ignore files.
    • FEATURE #1155: Add --auto-hybrid-regex flag for automatically falling back to PCRE2.
    • FEATURE #1159: ripgrep's exit status logic should now match GNU grep. See updated man page.
    • FEATURE #1164: Add --ignore-file-case-insensitive for case insensitive ignore globs.
    • FEATURE #1185: Add -I flag as a short option for the --no-filename flag.
    • FEATURE #1207: Add none value to -E/--encoding to forcefully disable all transcoding.
    • FEATURE da9d7204: Add --pcre2-version for querying showing PCRE2 version information.

    ๐Ÿ› Bug fixes:

    • BUG #306, BUG #855: Improve the user experience for ripgrep's binary file filtering.
    • BUG #373, BUG #1098: ** is now accepted as valid syntax anywhere in a glob.
    • BUG #916: ripgrep no longer hangs when searching /proc with a zombie process present.
    • BUG #1052: Fix bug where ripgrep could panic when transcoding UTF-16 files.
    • BUG #1055: Suggest -U/--multiline when a pattern contains a \n.
    • BUG #1063: Always strip a BOM if it's present, even for UTF-8.
    • BUG #1064: Fix inner literal detection that could lead to incorrect matches.
    • BUG #1079: Fixes a bug where the order of globs could result in missing a match.
    • BUG #1089: Fix another bug where ripgrep could panic when transcoding UTF-16 files.
    • BUG #1091: Add note about inverted flags to the man page.
    • BUG #1093: Fix handling of literal slashes in gitignore patterns.
    • BUG #1095: Fix corner cases involving the --crlf flag.
    • BUG #1101: Fix AsciiDoc escaping for man page output.
    • BUG #1103: Clarify what --encoding auto does.
    • BUG #1106: --files-with-matches and --files-without-match work with one file.
    • BUG #1121: Fix bug that was triggering Windows antimalware when using the --files flag.
    • BUG #1125, BUG #1159: ripgrep shouldn't panic for rg -h | rg and should emit correct exit status.
    • BUG #1144: Fixes a bug where line numbers could be wrong on big-endian machines.
    • BUG #1154: Windows files with "hidden" attribute are now treated as hidden.
    • BUG #1173: Fix handling of ** patterns in gitignore files.
    • BUG #1174: Fix handling of repeated ** patterns in gitignore files.
    • BUG #1176: Fix bug where -F/-x weren't applied to patterns given via -f.
    • BUG #1189: Document cases where ripgrep may use a lot of memory.
    • BUG #1203: Fix a matching bug related to the suffix literal optimization.
    • BUG 8f14cb18: Increase the default stack size for PCRE2's JIT.
  • v0.10.0 Changes

    September 07, 2018

    ๐Ÿš€ This is a new minor version release of ripgrep that contains some major new ๐Ÿ”‹ features, a huge number of bug fixes, and is the first release based on ๐Ÿ–จ libripgrep. The entirety of ripgrep's core search and printing code has been rewritten and generalized so that anyone can make use of it.

    ๐Ÿ‘ Major new features include PCRE2 support, multi-line search and a JSON output format.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • The minimum version required to compile Rust has now changed to track the latest stable version of Rust. Patch releases will continue to compile with the same version of Rust as the previous patch release, but new minor versions will use the current stable version of the Rust compile as its minimum supported version.
    • The match semantics of -w/--word-regexp have changed slightly. They used to be \b(?:<your pattern>)\b, but now it's (?:^|\W)(?:<your pattern>)(?:$|\W). This matches the behavior of GNU grep and is believed to be closer to the intended semantics of the flag. See #389 for more details.

    ๐Ÿ”‹ Feature enhancements:

    • FEATURE #162: libripgrep is now a thing. The primary crate is grep.
    • FEATURE #176: Add -U/--multiline flag that permits matching over multiple lines.
    • FEATURE #188: Add -P/--pcre2 flag that gives support for look-around and backreferences.
    • FEATURE #244: Add --json flag that prints results in a JSON Lines format.
    • FEATURE #321: Add --one-file-system flag to skip directories on different file systems.
    • FEATURE #404: Add --sort and --sortr flag for more sorting. Deprecate --sort-files.
    • FEATURE #416: Add --crlf flag to permit $ to work with carriage returns on Windows.
    • FEATURE #917: The --trim flag strips prefix whitespace from all lines printed.
    • FEATURE #993: Add --null-data flag, which makes ripgrep use NUL as a line terminator.
    • FEATURE #997: The --passthru flag now works with the --replace flag.
    • FEATURE #1038-1: Add --line-buffered and --block-buffered for forcing a buffer strategy.
    • FEATURE #1038-2: Add --pre-glob for filtering files through the --pre flag.

    ๐Ÿ› Bug fixes:

    • BUG #2: Searching with non-zero context can now use memory maps if appropriate.
    • BUG #200: ripgrep will now stop correctly when its output pipe is closed.
    • BUG #389: The -w/--word-regexp flag now works more intuitively.
    • BUG #643: Detection of readable stdin has improved on Windows.
    • BUG #441, BUG #690, BUG #980: Matching empty lines now works correctly in several corner cases.
    • BUG #764: Color escape sequences now coalesce, which reduces output size.
    • BUG #842: Add man page to binary Debian package.
    • BUG #922: ripgrep is now more robust with respect to memory maps failing.
    • BUG #937: Color escape sequences are no longer emitted for empty matches.
    • BUG #940: Context from the --passthru flag should not impact process exit status.
    • BUG #984: Fixes bug in ignore crate where first path was always treated as a symlink.
    • BUG #990: Read stderr asynchronously when running a process.
    • BUG #1013: Add compile time and runtime CPU features to --version output.
    • BUG #1028: Don't complete bare pattern after -f in zsh.
  • v0.9.0 Changes

    August 03, 2018

    ๐Ÿš€ This is a new minor version release of ripgrep that contains some minor new ๐Ÿ”‹ features and a panoply of bug fixes.

    ๐Ÿš€ Releases provided on Github for x86_64 will now work on all target CPUs, and will also automatically take advantage of features found on modern CPUs (such as AVX2) for additional optimizations.

    ๐Ÿ‘ This release increases the minimum supported Rust version from 1.20.0 to 1.23.0.

    ๐Ÿš€ It is anticipated that the next release of ripgrep (0.10.0) will provide ๐Ÿ‘ multi-line search support and a JSON output format.

    ๐Ÿ’ฅ BREAKING CHANGES:

    • When --count and --only-matching are provided simultaneously, the behavior of ripgrep is as if the --count-matches flag was given. That is, the total number of matches is reported, where there may be multiple matches per line. Previously, the behavior of ripgrep was to report the total number of matching lines. (Note that this behavior diverges from the behavior of GNU grep.)
    • ๐Ÿ‘ Octal syntax is no longer supported. ripgrep previously accepted expressions like \1 as syntax for matching U+0001, but ripgrep will now report an error instead.
    • ๐Ÿšš The --line-number-width flag has been removed. Its functionality was not carefully considered with all ripgrep output formats. See #795 for more details.

    ๐Ÿ”‹ Feature enhancements:

    • โž• Added or improved file type filtering for Android, Bazel, Fuchsia, Haskell, Java and Puppet.
    • FEATURE #411: Add a --stats flag, which emits aggregate statistics after search results.
    • FEATURE #646: Add a --no-ignore-messages flag, which suppresses parse errors from reading .ignore and .gitignore files.
    • FEATURE #702: Support \u{..} Unicode escape sequences.
    • FEATURE #812: Add -b/--byte-offset flag that shows the byte offset of each matching line.
    • FEATURE #814: Add --count-matches flag, which is like --count, but for each match.
    • FEATURE #880: Add a --no-column flag, which disables column numbers in the output.
    • FEATURE #898: Add support for lz4 when using the -z/--search-zip flag.
    • FEATURE #924: termcolor has moved to its own repository: https://github.com/BurntSushi/termcolor
    • FEATURE #934: Add a new flag, --no-ignore-global, that permits disabling global gitignores.
    • FEATURE #967: Rename --maxdepth to --max-depth for consistency. Keep --maxdepth for backwards compatibility.
    • FEATURE #978: Add a --pre option to filter inputs with an arbitrary program.
    • FEATURE fca9709d: Improve zsh completion.

    ๐Ÿ› Bug fixes:

    • BUG #135: Release portable binaries that conditionally use SSSE3, AVX2, etc., at runtime.
    • BUG #268: Print descriptive error message when trying to use look-around or backreferences.
    • BUG #395: Show comprehensible error messages for regexes like \s*{.
    • BUG #526: Support backslash escapes in globs.
    • BUG #795: Fix problems with --line-number-width by removing it.
    • BUG #832: Clarify usage instructions for -f/--file flag.
    • BUG #835: Fix small performance regression while crawling very large directory trees.
    • BUG #851: Fix -S/--smart-case detection once and for all.
    • BUG #852: Be robust with respect to ENOMEM errors returned by mmap.
    • BUG #853: Upgrade grep crate to regex-syntax 0.6.0.
    • BUG #893: Improve support for git submodules.
    • BUG #900: When no patterns are given, ripgrep should never match anything.
    • BUG #907: ripgrep will now stop traversing after the first file when --quiet --files is used.
    • BUG #918: Don't skip tar archives when -z/--search-zip is used.
    • BUG #934: Don't respect gitignore files when searching outside git repositories.
    • BUG #948: Use exit code 2 to indicate error, and use exit code 1 to indicate no matches.
    • BUG #951: Add stdin example to ripgrep usage documentation.
    • BUG #955: Use buffered writing when not printing to a tty, which fixes a performance regression.
    • BUG #957: Improve the error message shown for --path separator / in some Windows shells.
    • BUG #964: Add a --no-fixed-strings flag to disable -F/--fixed-strings.
    • BUG #988: Fix a bug in the ignore crate that prevented the use of explicit ignore files after disabling all other ignore rules.
    • BUG #995: Respect $XDG_CONFIG_DIR/git/config for detecting core.excludesFile.