A high-performance globbing library for .NET that outperforms Regex for file pattern matching.
DotNet.Glob is a high-performance globbing library for .NET applications that provides fast file pattern matching using standard glob syntax. It solves the performance limitations of using regular expressions for glob patterns by implementing a custom matching engine optimized for this specific use case. The library supports all common glob patterns including wildcards, character ranges, and directory globbing with additional features like case-insensitive matching and match generation.
.NET developers who need efficient file pattern matching in their applications, particularly those working with file systems, build tools, or any scenario requiring glob pattern evaluation.
Developers choose DotNet.Glob because it significantly outperforms Regex for glob pattern matching while providing a comprehensive feature set including fluent API, ReadOnlySpan support, and advanced options like case-insensitive matching and match generation.
A fast globbing library for .NET / .NETStandard applications. Outperforms Regex.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses a custom matching engine that outperforms compiled Regex, as shown in the repository's benchmarks, making it ideal for high-throughput scenarios.
Supports all standard glob wildcards and directory globbing (**), ensuring full compatibility with common file matching patterns.
GlobBuilder allows programmatic construction without string parsing, improving performance and code maintainability for dynamic globs.
Includes case-insensitive matching, match generation for testing, and ReadOnlySpan support for optimal performance on modern .NET platforms.
ReadOnlySpan overloads are only available on .NET Core 2.1+ and .NET Standard 2.1+, excluding older .NET Framework versions from key optimizations.
Lacks support for brace expansion and other advanced patterns found in some shell glob implementations, reducing flexibility for complex use cases.
Adds an external NuGet package dependency, which may be unnecessary for projects with simple globbing needs or strict dependency management.