Supertag.ai: ML Filesystem
Technologies used: Rust, Sqlite, FUSE, ML
Supertag is a new filesystem for Linux and MacOS, written in Rust, that provides an innovative way of organizing and navigating files with tags. Instead of putting your files into folders, you tag your files, and the folder structure is dynamically generated from the tags.
This means that /movies/drama
and /drama/movies
both contain the exact same contents: movie files tagged with both movies
and drama
. However, the /movies
folder would contain all movie tags, while the /drama
folder would contain all files (movies or otherwise) tagged with drama
.
The Supertag software itself was a commandline program that both mounted/unmounted filesystems (called “manifolders”) and allowed tagging of files. Once a manifolder was mounted and files tagged into it, it could be browsed just like normal directory, using regular programs like ls
, or GUIs like a normal file explorer.
In order to pull off what I wanted, I needed to first write my own Rust bindings to the C fuse library, before writing the actual Supertag implementation on top of my bindings. I don’t hesitate to build foundational tools if they’re required to achieve a goal.