WebFS depends on two interfaces: Stores
and Cells
.
Stores are content-addressed stores. They support two fundamental operations
Post(data) -> hash
Get(hash) -> data
The standard interface is defined by the cadata
package from the go-state library.
Store implementations can be found in pkg/stores/
Cells in WebFS are like cells in a spreadsheet, a holder of a data which can change over time.
The compare-and-swap operation (CAS(current, next)
) allows writes which will be synchronized with other WebFS instances writing to the same cell.
Cells provide two fundamental operations:
Get() -> current
CAS(prev, next []byte) -> current
The standard interface is defined by the cells
package from the go-state library.
Cell implementations can be found in pkg/cells/
WebFS uses GotFS from the Got version control system for storing file data.