Scout
Byte-oriented regex and ripgrep-compatible search libraries for .NET Native AOT.
Scout is a reusable search stack for .NET: a byte-oriented linear-time regex engine, glob and ignore matching, a parallel filesystem walker, static PCRE2 bindings, and the scout command-line tool. The CLI is a ripgrep-compatible reference application and conformance harness for the same ported engine and traversal stack, not a wrapper around rg.
Status: v0.6.1, tracking ripgrep 15.1.0 (commit 4857d6fa67). Functional and fully tested — 4,580 tests pass on all six supported platforms. The release workflow publishes NuGet library packages, native binaries, .NET tool packages, Homebrew, Scoop, and winget.
Libraries
Scout's reusable packages target net9.0 and net10.0:
- Scout.Text.Regex — byte-oriented, linear-time regular expressions.
- Scout.IO.Globbing — byte glob and glob-set matching.
- Scout.IO.Ignore — ripgrep-compatible ignore handling and recursive walking through FileWalker.
See docs/LIBRARIES.md for API examples.
Example
$ scout -n InvariantGlobalization Directory.Build.props
15: <InvariantGlobalization>true</InvariantGlobalization>
$ scout -l NativeLib native/
native/build-app-unix.sh
native/build-app-windows.ps1Scout's command line mirrors ripgrep's: if you know rg, you know scout. Run scout --help for the full reference.
Installation
Choose one installation method:
NuGet libraries
Install the reusable packages from NuGet:
dotnet add package Scout.Text.Regex
dotnet add package Scout.IO.Globbing
dotnet add package Scout.IO.Ignore.NET tool
dotnet tool install -g Scout