This program was written from scratch in C++, and uses minimal dependencies. A full list of dependencies is shared below.
Of the ~18k lines of code in the codebase, I wrote around 80%+ of the code, and designed the majority of the program.
Currently, this program is on Windows only.
Dependencies:
This program operates on Windows only, and directly parses the drive's master file table on each drive.
The essential file information (the parent ids, object name, and modtime) are then stored in dense arrays in the order they are discovered.Limitations: Currently the main limitation is the storage of data in structures of arrays, meaning that string lookups are extremely fast, but insertions and deletions are particularly slow and cause memory fragmentation and caching issues.
An alternative strategy is to just rebuild the indexes from scratch after a certain number of files have been modified. This is energy intensive, but rebuilding the indices only takes ~2 seconds on modern hardware, and on SSDs can be done at a rate of ~1-2 million files per second.