#data-structures #select #file #tags #meta #data-structure #file-handling


A new idea for a hierarchy-less filesystem interface

1 unstable release

0.0.0 Apr 30, 2020


58 lines


Originially file systems did not have any hierarchy. All Files were just kept in a plain list. Some people found that limiting and created trees of folders. Other people considered files to be the wrong abstraction and used databases instead.

Tagga is a bit of a middle ground. Instead of sorting files into a tree of folders, they are tagged with a number of attributes. For retrieval they can be filtered, much like a SELECT ... WHERE statement does.

This idea is backwards-compatible, as the path can just be an tag.

Right now its just a prototype to explore the ideas viability. It uses a database for storing the tags, and a folder to store the files.

In the future it would be nice to have an in-kernel implementation. It would then need to store the tags in the file system (hard) and the files would just become inodes (easy)


Please symlink the hooks to your local .git/hooks/ directory to run some automatic checks before committing.

ln -s ../../hooks/pre-commit .git/hooks/

Please install rustfmt and cargo-sync-readme so these checks can be run.

rustup component add rustfmt
cargo install cargo-sync-readme

Please execute cargo-sync-readme when you change the top-level-documentation. Please run cargo fmt whenever you change code. If possible configure your editor to do so for you.

No runtime deps