A blazingly fast Rust library for searching and filtering files with a fluent builder API.
Rust Search is a high-performance file search library for Rust applications, designed to be significantly faster than alternatives like `glob` and `fd`. It provides a flexible, builder-pattern API for querying filesystems with various filters and sorting options, prioritizing speed and a clean, idiomatic Rust API.
Rust developers building applications that require efficient file system traversal and searching, such as CLI tools, file managers, or build systems that need to process large directories.
Developers choose Rust Search for its benchmarked performance—up to 17x faster than `glob` and faster than `fd` in many cases—and its fluent builder API that allows for expressive, chainable queries with advanced filtering and similarity sorting.
Blazingly fast file search library built in Rust
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Benchmarks in the README show Rust Search is up to 17x faster than glob and outperforms fd in many cases, making it ideal for high-throughput applications.
The API uses a builder pattern with chainable methods like .location(), .ext(), and .depth(), as demonstrated in the examples, allowing for expressive and intuitive query construction.
Supports filtering by file size, creation/modification dates, and custom predicates, enabling precise file selection based on various attributes, as shown in the advanced filtering code snippet.
Includes a similarity_sort function that orders results by how closely they match the search input, improving relevance for user-facing features, with examples provided in the README.
The README mentions the library is still in early stages and encourages contributions, which may imply instability, incomplete features, or limited documentation compared to mature alternatives.
Lacks direct regex pattern matching for file names, relying on search_input for basic matching, which could be limiting for complex search patterns that other libraries handle.
Examples in the README use unwrap() on metadata without proper error handling, which might lead to panics in production if not carefully managed by developers.