|
|
|
VCS |
Research work |
P2P-Base (recent) |
Coin Based Storage |
Minor
products/projects |
File Synching Software |
Cloud Services |
Other P2P |
File Systems |
Cloud Services |
CMS/DAM |
Context Storage |
Network FS |
Other |
|
SOS |
|
git |
mercurial |
CVS |
Subversion |
OceanStore/Pond |
Self-certifying
file system |
PAST |
IPFS |
Perkeep |
MaidSAFE/Safenet
- with Safecoin |
Tahoe-LAFS |
Keybase
FS |
FileCoin |
SIA |
StorJ |
Ethereum's
Swarm |
libchop |
Peergos |
Upspin |
git-annex |
synchthing |
RSync |
Dropbox |
Google
Drive |
OneDrive |
Creative
Cloud |
Resilio
Sync (prev was BitSync) |
ext(2/3/4) |
ZFS |
FAT |
AWS
S3 |
Rackspace
COS |
Alfresco |
Drupal |
Joomla! |
Gaia
FS |
WinFS |
Semantic
FS |
quFiles |
AFS |
NFS |
SMB/CIFS |
Google
File System |
Hadoop |
Apple
Time Machine |
OpenSource |
Y |
|
Y |
Y |
|
|
Y, but URL not
available |
|
|
Y |
Y |
? |
Y |
N |
|
|
|
Y |
|
Y |
|
Y |
Y |
Y |
N |
N |
N |
N |
N |
Y |
|
|
N |
|
|
|
|
|
N |
|
|
|
|
|
N |
Y |
N |
Source Code |
https://github.com/stacs-srg/sos |
|
|
https://www.mercurial-scm.org/repo/hg |
|
|
|
|
|
https://github.com/ipfs/go-ipfs |
https://github.com/perkeep/perkeep |
|
https://github.com/tahoe-lafs/tahoe-lafs |
|
|
|
|
https://github.com/ethereum/go-ethereum/tree/swarm/swarm |
https://github.com/gitGNU/gnu_libchop |
https://github.com/Peergos/Peergos |
|
|
https://github.com/syncthing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Website |
https://stacs-srg.github.io/sos/ |
|
https://git-scm.com/ |
https://www.mercurial-scm.org/ |
|
|
|
|
|
https://ipfs.io/ |
https://perkeep.org/ |
|
https://tahoe-lafs.org/ |
|
|
|
|
|
|
|
|
|
https://syncthing.net/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Documentation |
|
|
|
|
|
|
|
|
|
https://ipfs.io/docs/ |
https://perkeep.org/doc/ |
https://maidsafe.net/docs/Safe%20Network%20Primer.pdf |
http://tahoe-lafs.readthedocs.io/ |
|
|
|
|
https://github.com/ethersphere/swarm |
|
|
|
|
https://docs.syncthing.net/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
More documentation |
|
|
|
|
|
|
|
|
|
https://github.com/ipfs/specs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Notes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
based
on IPFS |
|
|
https://ethereum.stackexchange.com/questions/2138/what-is-the-difference-between-swarm-and-ipfs |
|
based
on IPFS |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Distributed Model |
distributed |
|
distributed |
distributed |
client-server |
client-server |
distributed |
|
distributed |
|
|
distributed |
|
|
|
|
|
|
|
|
|
|
distributed
P2P |
client-server |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Location Abstraction |
Unstructured
P2P (but can support DHT) |
|
ndoes specified
in configuration |
|
|
|
DHT
- Tapestry |
|
DHT
- Pastry |
DHT
- Kademlia |
|
DHT |
|
|
|
|
|
|
|
|
|
|
User
ad-hoc setup of nodes |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data Type |
Immutable |
|
Immutable +
staging phase (mutable) |
Immutable
+ staging phase (mutable) |
|
|
read-only
data (immutable) and changeable data (mutable) |
|
|
immutable |
|
mutable
and immutable |
immutable |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data representation |
atoms |
|
blobs,
content-addressed |
|
|
|
|
|
|
block |
file
and bytes (collection of blobs) blob types |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
De-duplication |
Y |
|
Y |
|
|
|
Y |
|
Y |
Y |
Y |
|
Y
(with convergence secret) |
|
|
|
|
|
|
|
|
Y |
|
|
Y
(per user) |
|
|
|
|
N |
|
N |
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Object Sharding |
Not
by default |
|
Y |
|
|
|
|
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Packing |
N |
|
Y |
Y
(via the file revlog format) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Compression |
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Object ID |
Multiformat |
|
SHA-1 (migrating
to SHA-256) |
Numbers
(local to repo) and SHA-1 (for revlog, < 0.9v) and SHA-256 (for revlogNG,
>= 0.9) |
numbers |
numbers |
SHA-1
or hash(name + pub_key) for mutable data |
|
|
Multiformat |
SHA-256
(with blobref format) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data integrity |
Y |
|
Y |
|
|
|
Y |
|
Y |
Y |
Y |
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
erasure coding |
via
contexts |
|
N |
N |
N |
N |
active
data and archival data |
|
|
|
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Concurrency Model |
Should
be supported at the application level |
|
Merge |
Merge |
Merge |
Merge
or lock |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data sharing semantics |
immutable |
|
immutable |
immutable |
immutable |
immutable |
|
|
|
immutable |
immutable |
|
immutable |
|
immutable |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data replication |
via
contexts |
|
manually |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Blockchain |
N |
|
N |
N |
N |
N |
N |
N |
|
N |
N |
Y |
N |
N |
Y |
Y |
Y |
Y |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
|
|
|
N |
N |
N |
N |
N |
N |
N |
N |
N |
N |
Links |
Y
(by GUID refs) |
|
|
|
|
|
|
|
|
Y
(see IPLD) |
Y
(symlink) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data Aggregation |
Compounds |
|
Tree |
manifest
revlog |
|
|
|
|
|
list
(ordered), tree |
directory |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Metadata support |
|
|
with notes
and/or commits |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Versioning support |
|
|
Y |
Y |
Y |
Y |
|
|
|
Y |
Y |
|
|
|
|
|
|
|
|
|
|
Y |
Y |
N |
|
|
|
|
|
N |
|
N |
|
|
|
|
|
N |
N |
N |
N |
N |
N |
N |
|
|
Y |
Diff storage |
|
|
Snapshot: via
de-duplication of small blobs |
deltas
(neighbour deltas are merged from time to time to avoid too many deltas being
applied) |
deltas |
deltas
or snapshot |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Network Protocol |
http |
|
gif (w/wo ssh),
HTTP, HTTPS, rsync, email, bundles |
custom,
HTTP, email |
pserver,
ssh |
svn
(w/wo ssh), HTTP, SSL (with WebDAV) |
|
|
|
Bitswap,
HTTP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
API |
REST |
|
|
|
|
|
|
|
|
REST
- https://ipfs.io/docs/api/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y |
Y |
Y |
|
|
|
|
|
REST,
SOAP |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed requests |
Y |
|
|
|
|
|
|
|
|
Y |
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
User model |
Y |
|
Y
(committed/authort) |
|
|
|
|
|
|
|
|
|
? |
|
|
|
|
|
|
|
|
|
|
|
Y |
Y |
Y |
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data protection/encryption |
Y |
|
N |
N |
N |
N |
|
|
|
|
|
Y |
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Granular Protection |
Y |
|
N |
N |
N |
N |
|
|
|
|
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Capabilities |
N |
|
|
|
|
|
|
|
|
N |
|
|
Y |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Data/Metadata signing |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Automatic File Classification |
via
contexts |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y
(w contexts) |
|
Y |
|
N |
N |
N |
N |
N |
N |
Smart folders |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Y |
Y |
Y |
Y |
N |
N |
N |
N |
N |
N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Automatic File Management |
via
contexts |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Useful links |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://en.wikipedia.org/wiki/Comparison_of_file_hosting_services |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://en.wikipedia.org/wiki/Comparison_of_version_control_software |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
https://en.wikipedia.org/wiki/Comparison_of_file_synchronization_software |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|