globset
Cross platform single glob and glob set matching. Glob set matching is the process of matching one or more glob patterns against a single candidate path simultaneously, and returning all of the globs that matched.
0.4.20
221M downloads/mo
#461 most downloaded on crates.io
BurntSushi/ripgrep
What this package is like to depend on
Last release 19 days ago
04 Aug 2026
Ships fairly regularly
a new release about every 6 months
Rarely documented
notes for 4 of 29 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
29 releases · first in 2016
4 releases in the last 12 months
see the full history below
Release timeline
29 releases · Oct 2016 to Aug 2026Releases
latest 29-
0.4.2004 Aug 2026Nothing published for this version
-
0.4.1915 Jul 2026Nothing published for this version
-
0.4.1822 Oct 2025Nothing published for this version
-
0.4.1716 Oct 2025Nothing published for this version
-
0.4.1627 Feb 2025Nothing published for this version
-
0.4.1509 Sep 2024Nothing published for this version
-
0.4.1426 Nov 2023Nothing published for this version
-
0.4.1305 Aug 2023Nothing published for this version
-
0.4.1226 Jul 2023Nothing published for this version
-
0.4.1112 Jul 2023Nothing published for this version
-
0.4.1005 Jan 2023Nothing published for this version
-
0.4.910 Jun 2022Nothing published for this version
-
0.4.818 Jun 2021Nothing published for this version
-
0.4.712 Jun 2021Nothing published for this version
-
0.4.622 Oct 2020Nothing published for this version
-
0.4.516 Mar 2020Nothing published for this version
-
0.4.426 Jun 2019Nothing published for this version
-
0.4.315 Apr 2019Nothing published for this version
-
0.4.207 Sep 2018Nothing published for this version
-
0.4.128 Jul 2018Nothing published for this version
-
0.4.021 Apr 2018Release notes
Open source →This is a new minor version release of ripgrep that includes a couple very minor breaking changes, a few new features and lots of bug fixes.
This version of ripgrep upgrades its
regexdependency from0.1to0.2, which includes a few minor syntax changes:- POSIX character classes now require double bracketing. Previously, the regex
[:upper:]would parse as theupperPOSIX character class. Now it parses as the character class containing the characters:upper:. The fix to this change is to use[[:upper:]]instead. Note that variants like[[:upper:][:blank:]]continue to work. - The character
[must always be escaped inside a character class. - The characters
&,-and~must be escaped if any one of them are repeated consecutively. For example,[&],[\&],[\&\&],[&-&]are all equivalent while[&&]is illegal. (The motivation for this and the prior change is to provide a backwards compatible path for adding character class set notation.)
Feature enhancements:
- Added or improved file type filtering for Crystal, Kotlin, Perl, PowerShell, Ruby, Swig
- FEATURE #83: Type definitions can now include other type definitions.
- FEATURE #243:
BREAKING CHANGE: The
--columnflag now implies--line-number. - FEATURE #263:
Add a new
--sort-filesflag. - FEATURE #275:
Add a new
--path-separatorflag. Useful in cygwin.
Bug fixes:
- BUG #182: Redux: use more portable ANSI color escape sequences when possible.
- BUG #258: Fix bug that caused ripgrep's parallel iterator to spin and burn CPU.
- BUG #262: Document how to install shell completion files.
- BUG #266, BUG #293: Fix handling of bold styling and change the default colors.
- BUG #268: Make lack of backreference support more explicit.
- BUG #271:
Remove
~dependency on clap. - BUG #277:
Fix cosmetic issue in
globsetcrate docs. - BUG #279:
ripgrep did not terminate when
-q/--quietwas given. - BUG #281:
BREAKING CHANGE: Completely remove
^Chandling from ripgrep. - BUG #284:
Make docs for
-g/--globclearer. - BUG #286: When stdout is redirected to a file, don't search that file.
- BUG #287: Fix ZSH completions.
- BUG #295:
Remove superfluous
memmapdependency ingrepcrate. - BUG #308:
Improve docs for
-r/--replace. - BUG #313: Update bytecount dep to latest version.
- BUG #318: Fix invalid UTF-8 output bug in Windows consoles.
- POSIX character classes now require double bracketing. Previously, the regex
-
0.3.011 Feb 2018Release notes
Open source →This is a new minor version release of ripgrep that includes two breaking changes with lots of bug fixes and some new features and performance improvements. Notably, if you had a problem with colors or piping on Windows before, then that should now be fixed in this release.
BREAKING CHANGES:
- ripgrep now requires Rust 1.11 to compile. Previously, it could build on Rust 1.9. The cause of this was the move from Docopt to Clap for argument parsing.
- The
-e/--regexpflag can no longer accept a pattern starting with a-. There are two work-arounds:rg -- -fooandrg [-]fooorrg -e [-]foowill all search for the same-foopattern. The cause of this was the move from Docopt to Clap for argument parsing. This may get fixed in the future..
Performance improvements:
- PERF #33: ripgrep now performs similar to GNU grep on small corpora.
- PERF #136: ripgrep no longer slows down because of argument parsing when given a large argument list.
Feature enhancements:
- Added or improved file type filtering for Elixir.
- FEATURE #7:
Add a
-f/--fileflag that causes ripgrep to read patterns from a file. - FEATURE #51:
Add a
--colorsflag that enables one to customize the colors used in ripgrep's output. - FEATURE #138:
Add a
--files-without-matchflag that shows only file paths that contain zero matches. - FEATURE #230: Add completion files to the release (Bash, Fish and PowerShell).
Bug fixes:
- BUG #37:
Use correct ANSI escape sequences when
TERM=screen.linux. - BUG #94: ripgrep now detects stdin on Windows automatically.
- BUG #117: Colors should now work correctly and automatically inside mintty.
- BUG #182:
Colors should now work within Emacs. In particular,
--color=alwayswill emit colors regardless of the current environment. - BUG #189:
Show less content when running
rg -h. The full help content can be accessed withrg --help. - BUG #210: Support non-UTF-8 file names on Unix platforms.
- BUG #231: Switch from block buffering to line buffering.
- BUG #241:
Some error messages weren't suppressed when
--no-messageswas used.
-
0.2.122 Oct 2017Release notes
Open source →Feature enhancements:
- Added or improved file type filtering for Clojure and SystemVerilog.
- FEATURE #89: Add a --null flag that outputs a NUL byte after every file path.
Bug fixes:
- BUG #98: Fix a bug in single threaded mode when if opening a file failed, ripgrep quit instead of continuing the search.
- BUG #99: Fix another bug in single threaded mode where empty lines were being printed by mistake.
- BUG #105: Fix an off-by-one error with --column.
- BUG #106: Fix a bug where a whitespace only line in a gitignore file caused ripgrep to panic (i.e., crash).
-
0.2.012 May 2017Release notes
Open source →Feature enhancements:
- Added or improved file type filtering for VB, R, F#, Swift, Nim, JavaScript, TypeScript
- FEATURE #20: Adds a --no-filename flag.
- FEATURE #26: Adds --files-with-matches flag. Like --count, but only prints file paths and doesn't need to count every match.
- FEATURE #40:
Switch from using
.rgignoreto.ignore. Note that.rgignoreis still supported, but deprecated. - FEATURE #68: Add --no-ignore-vcs flag that ignores .gitignore but not .ignore.
- FEATURE #70: Add -S/--smart-case flag (but is disabled by default).
- FEATURE #80:
Add support for
{foo,bar}globs.
Many many bug fixes. Thanks every for reporting these and helping make
ripgrepbetter! (Note that I haven't captured every tracking issue here, some were closed as duplicates.)- BUG #8: Don't use an intermediate buffer when --threads=1. (Permits constant memory usage.)
- BUG #15: Improves the documentation for --type-add.
- BUG #16, BUG #49, BUG #50, BUG #65: Some gitignore globs were being treated as anchored when they weren't.
- BUG #18: --vimgrep reported incorrect column number.
- BUG #19: ripgrep was hanging waiting on stdin in some Windows terminals. Note that this introduced a new bug: #94.
- BUG #21:
Removes leading
./when printing file paths. - BUG #22:
Running
rg --help | echocausedrgto panic. - BUG #24: Clarify the central purpose of rg in its usage message.
- BUG #25: Anchored gitignore globs weren't applied in subdirectories correctly.
- BUG #30:
Globs like
foo/**should match contents offoo, but notfooitself. - BUG #35,
BUG #81:
When automatically detecting stdin, only read if it's a file or a fifo.
i.e., ignore stdin in
rg foo < /dev/null. - BUG #36: Don't automatically pick memory maps on MacOS. Ever.
- BUG #38: Trailing whitespace in gitignore wasn't being ignored.
- BUG #43: --glob didn't work with directories.
- BUG #46: Use one fewer worker thread than what is provided on CLI.
- BUG #47: --help/--version now work even if other options are set.
- BUG #55: ripgrep was refusing to search /proc/cpuinfo. Fixed by disabling memory maps for files with zero size.
- BUG #64: The first path given with --files set was ignored.
- BUG #67:
Sometimes whitelist globs like
!/dirweren't interpreted as anchored. - BUG #77: When -q/--quiet flag was passed, ripgrep kept searching even after a match was found.
- BUG #90: Permit whitelisting hidden files.
- BUG #93: ripgrep was extracting an erroneous inner literal from a repeated pattern.
-
0.1.413 Mar 2017Nothing published for this version
-
0.1.314 Jan 2017Nothing published for this version
-
0.1.206 Nov 2016Nothing published for this version
-
0.1.130 Oct 2016Nothing published for this version
-
0.1.011 Oct 2016Nothing published for this version