Blazingly fast file search crate built in Rust 🔥
📦 Usage
Please report any problems you encounter when using rust search here: Issues
Add rust_search = "2.0.0" in Cargo.toml.
[]
= "2.0.0"
Examples
- General use
use SearchBuilder;
- Sort the output by similarity with the input
use ;
search without similarity sort
["afly.txt", "bfly.txt", "flyer.txt", "fly.txt"]
search with similarity sort
["fly.txt", "flyer.txt", "afly.txt", "bfly.txt",]
- To get all the files with a specific extension in a directory, use:
use SearchBuilder;
let files: = default
.location
.ext
.build
.collect;
- To get all the files in a directory, use:
use SearchBuilder;
let files: = default
.location
.depth
.build
.collect;
To filter files by date_created, date_modified, file_size and/or custom_filter, use:
use ;
use ;
let search: = default
.location
.file_size_greater
.file_size_smaller
.created_after
.created_before
.modified_after
.custom_filter
.custom_filter
.build
.collect;
👉 For more examples, please refer to the Documentation
⚙️ Benchmarks
The difference in sample size is due to the fact that fd and glob are different tools and have different use cases. fd is a command line tool that searches for files and directories. glob is a library that can be used to search for files and directories. The benchmark is done on a MacBook Air M2, 16 GB Unified memory.
Benchmarks are done using hyperfine, Benchmarks files are available in the benchmarks drive folder.
- Rust Search vs Glob
The benchmark was done on a directories containing 300K files.
| Command / Library | Mean [s] | Min [s] | Max [s] | Relative |
|---|---|---|---|---|
rust_search |
1.317 ± 0.002 | 1.314 | 1.320 | 1.00 |
glob |
22.728 ± 0.023 | 22.690 | 22.746 | 17.25 ± 0.03 |
- Rust Search vs FD
The benchmark was done on a directories containing 45K files.
| Command / Library | Mean [ms] | Min [ms] | Max [ms] | Relative |
|---|---|---|---|---|
rust_search |
680.5 ± 2.1 | 678.3 | 683.6 | 1.00 |
fd -e .js |
738.7 ± 10.2 | 720.8 | 746.7 | 1.09 ± 0.02 |
Results:-
+ rust_search is 17.25 times faster than Glob.
+ rust_search** is 1.09 times faster than FD.
👨💻 Contributors
Any contributions would be greatly valued as this library is still in its early stages.
- Documentation
- Benchmarks
- Implementation guidelines
- Code Improvement
If you want to contribute to this project, please follow the steps below:
- Fork the project
- Clone the forked repository
- Create a feature branch
- Make changes to the code
- Commit the changes
- Push the changes to the forked repository
- Create a pull request
- Wait for the pull request to be reviewed and merged (if approved)
License
This project is licensed under the terms of the MIT license.
Discord server & Linkedin
Click the button below to join the discord server or Linkedin