You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ffs, the file filesystem, let's you mount semi-structured
data as a filesystem---a tree structure you already know how to work with!
Working with semi-structured data using command-line tools is hard.
Tools like jq help a lot, but
learning a new language for simple manipulations is a big ask. By mapping
hard-to-parse trees into a filesystem, you can keep using the tools you
know.
Example
Run ffs [file.blah] to mount file.blah at the mountpoint file. The
final, updated version of the file will be outputted on stdout.
You can specify an explicit mountpoint by running ffs -m MOUNT file;
you can specify an output file with -o OUTPUT. You can edit a file
in place by running ffs -i file---when the volume is unmounted, the
resulting output will be written back to file.
You can control whether directories are rendered as objects or arrays
lists using extended file attributes (xattrs): the user.type xattr
specifies named for objects and list for arrays. Here, we create a
new JSON file and use Linux's setfattr to mark a directory as being
a list:
ffs only works on Linux, using FUSE to make a synthetic filesystem.
The pack/unpack tools in this repository work differently: they turn
filesystems into semi-structured data (pack) and semi-structured data into
files (unpack). These tools should work on any POSIX platform, and are
currently in a prerelease/beta state.
About
the file filesystem: mount semi-structured data (like JSON) as a Unix filesystem