Ghee 0.3 - The tastiest way to work with Linux extended attributes (xattrs)
Introducing Ghee 0.3, the newest release of the premier tool for manipulating Linux extended attributes!
Originally known as Hatter and then, regrettably, as Mattress, this tastiest of tools has been redubbed Ghee after the clarified butter popular in Indian cuisine, and as a reference to the Btrfs filesystem, which originally convinced me that much database functionality has now been subsumed by advanced filesystem features.
This new release adds SQL WHERE
-style predicates to filter by, e.g. ghee get --where age >= 65 ./people
, and makes get
recursive by default (the old behavior is still available behind the --flat
flag).
The idea is for Ghee to implement as much of a relational data model as possible using the filesystem itself as a substrate. Design principles:
- Folders are tables
- Files are records
- Relative paths are primary keys
- Extended attributes are non-primary-key columns
- Enforce schema only when present
- The file contents are user-controlled; only directory structure, filenames, and extended attributes are used by Ghee
- Use of filesystem features should be preferred over implementing features directly in Ghee, e.g. locking, Btrfs subvolumes, snapshots, incremental backup
Would love to hear any comments. Apologies for the name changes---third time's the charm, I think this one'll stick.