A highly-performant, recursive multi-keyword search tool that uses Aho-Corasick, file-change caching, and inverted indexes for instant, context-rich results across large textual datasets and filesystems.
- clone
- populate
keywords.txtwith the keywords you want to query for - configure
.scoutignorewith the files you want to omit for search - run mfind with
clang++ -std=c++17 -pthread mfind.cpp core/fileCache.cpp helpers/ignoreRules.cpp -I. -Icore -Ihelpers -Iqueues -Iwalkers -Iworkers -o mfind./mfind .
multifind
- aho-corasick
- case-insensitive match
- grouped color-coded output
- longest match / all match priority toggle
- keyword tagging or ID support
- match stats per file/keyword
- export results (e.g. JSON, CSV)
- watch mode (live file changes)
general
- chunking
- recursive find in directory
- parallelization
- file-level threading
- chunk-level threading
- extension filters (e.g.,
.txt,.cpp) - ignore rules support (
.gitignore) - cache file hashes to skip unchanged files
- in-memory index for very large codebases
- LSP-compatible output formatting
walkers/- Spawns walker threads, traverses dirs, pushes filesqueues/- Holds concurrentfileQueue+matchQueueimplsworkers/- Thread pool to pop files, runsearchFile()using Aho-Corasickcore/- Aho-Corasick engine + file caching + match inverted indexhelpers/- Format/context/extension utils