The File Filesystem (2021)

Overall reaction

  • Many commenters find the “file-as-filesystem” idea clever and fun, fitting the Unix “everything is a file” ethos.
  • Some note they’d still default to higher-level tools (e.g., JSON/DB/query tools) for most real work, so see this more as a neat hack than a daily driver.

Naming and prior art

  • The “ffs” name is criticized as overloaded: existing Fast/Formatted/Flash/Amiga file systems already use it, plus the colloquial expletive. Alternatives like “filefs” are suggested.
  • Others argue naming conflicts are minor since this targets different platforms.
  • Several historical precedents are mentioned: editors and IDEs exposing open buffers or selections as files, browsers/tabs-as-dirs, Plan 9 mechanisms, Reiser4’s file/dir hybrids, archive-mounting tools, and “everything via /proc”-style ideas.

Use cases and benefits

  • Popular use case: interactively browsing and searching JSON with regular filesystem tools (ls, grep, etc.).
  • General pattern: treating structured formats and “files inside files” as mountable FS to avoid explicit extraction and to reuse existing tools.
  • Concrete benefits cited:
    • On-demand access inside archives (e.g., CI caches in ZIPs) to avoid full extraction and speed builds.
    • Easier interoperability: producers/consumers speak a common FS abstraction instead of many bespoke converters.
    • Cleaner exploration of Git commits or other object hierarchies as directories.

Limitations and open questions

  • Missing formats: XML, CSV, Excel, PDF. XML in particular is seen as hard to map cleanly due to attributes, comments, processing instructions, DTDs, entities, and namespaces.
  • JSON modeling concerns:
    • Keys containing slashes.
    • Representing arrays, preserving order, and inserting elements without fragile renames.
    • Distinguishing arrays vs objects and representing hashes cleanly.
    • Risk of lossy or convoluted mappings.
  • One comment notes arrays are supported via extended attributes, but details remain thin.

FUSE, OS support, and macOS debate

  • Some dislike relying on FUSE (complexity, performance, kernel extensions), preferring native or specialized tools.
  • Others note many FUSE-based systems already mount archives and images; this fits an existing ecosystem.
  • Long subthread on macOS:
    • macOS lacks a public, general user-space FS API like FUSE; third-party solutions are kext- or NFS-based and fragile.
    • There appears to be an internal user-mode FS API gated by private entitlements.
    • Disagreement over Apple’s motives: some see hostility to developers, others argue it’s about security, stability, and maturing the API before opening it.