go-ds-crdt VS Go IPFS

Compare go-ds-crdt vs Go IPFS and see what are their differences.

go-ds-crdt

A distributed go-datastore implementation using Merkle-CRDTs. (by ipfs)

Go IPFS

IPFS implementation in Go [Moved to: https://github.com/ipfs/kubo] (by ipfs)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
go-ds-crdt Go IPFS
7 63
363 13,905
2.5% -
6.1 9.6
3 months ago almost 2 years ago
Go Go
GNU General Public License v3.0 or later GNU General Public License v3.0 or later
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

go-ds-crdt

Posts with mentions or reviews of go-ds-crdt. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-01-25.
  • CRDTs Turned Inside Out
    2 projects | news.ycombinator.com | 25 Jan 2024
    I forgot: key-value store using MD-CRDTs was implemented here: https://github.com/ipfs/go-ds-crdt

    The trickiest part was not the CRDT, but the DAG traversal with multiple workers processing parallel updates on multiple branches and switching CRDT-DAG roots as they finish branches.

  • We Put IPFS in Brave
    4 projects | news.ycombinator.com | 24 May 2022
    In https://github.com/ipfs/go-ds-crdt, every node in the Merkle DAG has a "Priority" field. When adding a new head, this is set to (maximum of the priorities of the children)+1.

    Thus, this priority represents the current depth (or height) of the DAG at each node. It is sort of a timestamp and you could use a timestamp, or whatever helps you sort. In the case of concurrent writes, the write with highest priority wins. If we have concurrent writes of same priority, then things are sorted by CID.

    The idea here is that in general, a node that is lagging behind or not syncing would have a dag with less depth, therefore its writes would have less priority when they conflict with writes from others that have built deeper DAGs. But this is after all an implementation choice, and the fact that a DAG is deeper does not mean that the last write on a key happened "later".

  • Making CRDTs Byzantine Fault Tolerant [pdf]
    3 projects | news.ycombinator.com | 4 Mar 2022
    The idea of DAG-embedded CRDTs is far from new and was introduced here:

    https://arxiv.org/abs/2004.00107 (I'm among the authors)

    Unfortunately, the verification that the author proposes (not accepting new updates until the dag below is verified) will need a lot of caveats for real world usage.

    Currently we use these CRDTs for a key value database of 40M+ keys in a deployment of ipfs-cluster, which uses https://github.com/ipfs/go-ds-crdt .

  • Ask HN: P2P Databases?
    3 projects | news.ycombinator.com | 1 Mar 2022
  • Go-ds-CRDT: distributed datastore using Merkle-CRDTs
    1 project | news.ycombinator.com | 28 Oct 2021
  • Conflict-free replicated datatypes solve distributed data consistency challenges
    2 projects | news.ycombinator.com | 28 Oct 2021
  • Data Laced with History: Causal Trees and Operational CRDTs (2018)
    2 projects | news.ycombinator.com | 14 Feb 2021
    Not 100% the thing, but potentially related work in this area:

    https://github.com/ipfs/go-ds-crdt

    (See link to paper, and links to other projects in it, like OrbitDB).

Go IPFS

Posts with mentions or reviews of Go IPFS. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-09-16.
  • Help seed Z-Library on IPFS
    1 project | news.ycombinator.com | 24 Nov 2022
    nice/renice isn’t what it used to be[0].

    Bandwidth limiting is not built in[1].

    [0] - https://stackoverflow.com/questions/10342470/process-nicenes...

    [1] - https://github.com/ipfs/go-ipfs/issues/3065

  • improving download infra
    3 projects | /r/openSUSE | 16 Sep 2022
    For me, https://github.com/ipfs/go-ipfs/issues/9044 is the main blocker atm and https://github.com/ipfs/go-ipfs/issues/2167 is still around and annoying.
  • is there a way to sync Ipfs with Dropbox?
    1 project | /r/ipfs | 26 Jun 2022
    It makes me wonder if you use the IPFS FUSE mount and symlink an IPNS address of files that you want to sync if it would be read by Dropbox.
  • Cheap, reliable way to host free archive of films of solidarity and struggle
    3 projects | /r/DataHoarder | 22 Jun 2022
    I'm using the IPFS fuse mount to load mine into Plex/Jellyfin. It's nice that I can load a movie into a virtual directory on IPFS and my home and remote servers get updated automatically. (when I update my IPNS) So you could run an official solidaritycinema IPNS address that people load into their Plex as a library.
  • Remote Plex server and local Plex Server Sync
    3 projects | /r/PleX | 15 Jun 2022
    Maybe tangentially related, I've been interested in IPFS as a network medium. ( Using the IPFS fuse mount ) Rather than syncing the entire file it syncs the Library list. When the Plex server makes the request for the file, IPFS negotiates the download. It makes it more like Netflix.
  • Go-IPFS v0.13.0 has been released
    1 project | news.ycombinator.com | 9 Jun 2022
  • go-ipfs 0.13.0 released
    1 project | /r/ipfs | 9 Jun 2022
  • Best way to share library with family/friends?
    1 project | /r/PleX | 6 Jun 2022
    I've been messing with Plex + IPFS and I think it's pretty cool. The IPFS FUSE Mount gives IPFS network access to Plex as just a regular filesystem. To keep it private within my family I'm using a Private Swarm.
  • We Put IPFS in Brave
    4 projects | news.ycombinator.com | 24 May 2022
    "Implement bandwidth limiting" https://github.com/ipfs/go-ipfs/issues/3065

    Going on six years now. You can use external tools (like "trickle") or your OS knobs.

  • Multiple plex servers same content
    1 project | /r/PleX | 18 May 2022
    So my plan is to setup plex on a relative's Raspberry Pi so that it works off the IPFS mounted network directories in the same way. They'll have a virtual library that takes basically no memory on their Pi unless they request a video, then it'll start caching to their machine.

What are some alternatives?

When comparing go-ds-crdt and Go IPFS you can also consider the following projects:

merkle-crdt - Merkle-Clock CRDT implementation in python

Ceph - Ceph is a distributed object, block, and file storage platform

differential-dataflow - An implementation of differential dataflow using timely dataflow on Rust.

Tahoe-LAFS - The Tahoe-LAFS decentralized secure filesystem.

verneuil - Verneuil is a VFS extension for SQLite that asynchronously replicates databases to S3-compatible blob stores.

minio - The Object Store for AI Data Infrastructure

yjs - Shared data types for building collaborative software

Apache Hadoop - Apache Hadoop

Apache Ignite - Apache Ignite

syncthing - Open Source Continuous File Synchronization

yata - YATA based algorithm for plain text CRDT edit merging in python

GlusterFS - Web Content for gluster.org -- Deprecated as of September 2017