Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/wnfs-wg/spec
https://github.com/wnfs-wg/spec
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/wnfs-wg/spec
- Owner: wnfs-wg
- License: other
- Created: 2022-02-17T18:34:08.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-11T10:09:31.000Z (7 months ago)
- Last Synced: 2024-04-11T11:26:24.017Z (7 months ago)
- Size: 3.7 MB
- Stars: 38
- Watchers: 12
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
⚠️ This spec suite is Work-in-Progress. It may be useful for reference & discussion, though ⚠️
# Webnative File System (WNFS) Specification v0.2.0-alpha
## Abstract
The Web Native File System (WNFS) is a distributed file system. It is versioned, logged, programmable, has strong-yet-flexible security, and is fully controlled by the end user. Service providers can validate writes without reading the contents of the file system, and minimal metadata is leaked.
WNFS relies heavily on the ”space” side of the space/time trade-off to deliver performance. As a consequence of this and Merklization, WNFS can provide advanced functionality such as versioning and delegated or collaborative write access.
WNFS can be used for offline collaboration, because WNFS forms a state-based conflict-free replicated data type (CRDT): There exists a commutative and associative merge function that combines any two (versions of) WNFS roots.
WNFS is content-addressed and thus extremely portable. It may be stored on the edge, on the end user's device or in the cloud. Devices may also only partially load a WNFS and still write files and directories.
## Suite of Specifications
The WNFS spec is a suite of specifications consisting of public WNFS, private WNFS and its parts. Some of these specifications use common notation described in [notation.md](/spec/notation.md).
The specifications are:
- [Public WNFS](/spec/public-wnfs.md)
- [Private WNFS](/spec/private-wnfs.md)
- [Shared Private Data Extension](/spec/shared-private-data.md)
- [`NameAccumulator`s](/spec/nameaccumulator.md)
- [Skip Ratchet](/spec/skip-ratchet.md)
## Editors* [Brooklyn Zelenka](https://github.com/expede), [Fission](https://fission.codes)
* [Philipp Krüger](https://github.com/matheus23), [Fission](https://fission.codes)## Authors
* [Brooklyn Zelenka](https://github.com/expede), [Fission](https://fission.codes)
* [Philipp Krüger](https://github.com/matheus23), [Fission](https://fission.codes)
* [Daniel Holmgren](https://github.com/dholms), [Bluesky](https://blueskyweb.xyz/)
* [Brendan O'Brien](https://github.com/b5), [number 0](https://www.n0.computer)## Acknowledgments
Thank you [Brendan O'Brien](https://github.com/b5) for invaluable feedback on specification changes and building a benchmarking golang implementation of WNFS.
Thank you [Steven Allen](https://github.com/stebalien) engaging with the specification, pointing out concerns with namefilters, coming up with salted namefilters and suggesting them as an improvement.