{"repo":"mgree/ffs","free":true,"listed":false,"github":"https://github.com/mgree/ffs","clone":"git clone https://github.com/mgree/ffs.git","description":"the file filesystem: mount semi-structured data (like JSON) as a Unix filesystem","language":"Rust","stars":498,"topics":["filesystem","shell","json","toml","yaml","bash","fish","zsh","console"],"license":"GPL-3.0","category":"cli-tools","readme_excerpt":"ffs: the file filesystem ffs, the f ile f ile s ystem, 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: External dependencies You need an appropriate FUSE along with pkg-config. See the GitHub build workflow for examples of external dependency installation. pack/unpack 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 s","default_branch":null,"files":null,"tree":[],"storefront":"/r/mgree","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/mgree/ffs/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}