This is an automated archive made by the Lemmit Bot.

The original was posted on /r/rust by /u/joshhansen on 2023-08-11 08:46:37.


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:

  1. Folders are tables
  2. Files are records
  3. Relative paths are primary keys
  4. Extended attributes are non-primary-key columns
  5. Enforce schema only when present
  6. The file contents are user-controlled; only directory structure, filenames, and extended attributes are used by Ghee
  7. 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.