As WNFS becomes more adopted by our friends & partners, we’re looking into gathering more requirements & communicating a current state of a roadmap for WNFS.
The goal of this roadmap is to provide information on
- what “is left”/what we want to improve in WNFS
- what priority and current timelines these improvements have
- a vision for where WNFS is going
- where you can help accelerate our roadmap potentially.
But first, I think it’d be great to review
We’ve started to build the WebNative File System because:
- User data should be content-addressable so users can take it wherever they want it to go to keep it safe, available and persisted.
- We want user data to be encrypted at rest with keys owned by users.
- We need space for users to attach metadata.
- User data should support multi-tenancy, so it should e.g. reconcile changes from multiple devices.
- Users should be able to use the Principle of Least Authority POLA when sharing read or write access. They should have fine-grained control over access levels.
- We want to hide file size & DAG structure (‘metadata’) for encrypted data.
It is an open standard and everyone should be empowered to help build this!
We don’t think WNFS can solve every use case, but we surely hope by developing this in the open we avoid encrypting data in various different, incompatible formats.
Fission has run a browser-based WNFS system with encrypted private data for 2 years at this point. We’ve learned from it and are currently iterating on improvements on a fundamental level.
That also means we’re not done.
The idea is to capture future plans in this public github project as part of the WNFS Working Group:
We’ve already come quite far with WNFS. Our remaining focus for this year is finishing up an initial WNFS implementation in rust with a new private file system supporting ratcheting & snapshot sharing, as well as testing how rs-wnfs currently integrates with webnative, apps like drive, iroh, Capyloon and FunctionLand.
This quarter’s theme will be “Data Format Stability”.
We already have some ideas & improvements for WNFS that require changes to the data format. We need to work through these and incorporate them to minimize breakage in the future.
Once data format stability landed, we can start improving WNFS, building around its stable core.
This includes implementation work like
- granting & checking fine-grained write access
- conflict reconciliation, enabling concurrent writes
- collaboration via shared private files and symlinks
Beyond that we still need to improve aspects of WNFS such as:
- support for sharded directories (more than 1000 entries)
- making “super-peers” easier to run by turning WNFS into a self-authorized data structure.