Skip to content
This repository was archived by the owner on Apr 29, 2026. It is now read-only.

equilibriumco/ipfs-log-rs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

⚠️ Project archived

This repository fork has been archived because the project is no longer under active development by the Equilibrium team.

The code remains available for reference and historical purposes, but it should be considered unmaintained. We do not currently plan to provide updates, support, issue triage, or pull request reviews for this repository.

If you would like to reopen the project, continue development, or discuss future maintenance, please contact the Equilibrium team.

ipfs-log-rs

A Rust implementation of ipfs-log by Haja Networks: an append-only log on IPFS.

ipfs-log-rs is an immutable conflict-free replicated data structure (CRDT) for distributed systems. It is an append-only log that can be used to model a mutable, shared state between peers in peer-to-peer applications.

Every entry in the log is stored in IPFS, and each points to a hash/hashes of the previous entry/entries, forming a graph. Logs can be forked and joined back together.

An example graph from the original implementation readme:

           Log A                Log B
             |                    |
     logA.append("one")   logB.append("hello")
             |                    |
             v                    v
          +-----+             +-------+
          |"one"|             |"hello"|
          +-----+             +-------+
             |                    |
     logA.append("two")   logB.append("world")
             |                    |
             v                    v
       +-----------+       +---------------+
       |"one","two"|       |"hello","world"|
       +-----------+       +---------------+
             |                    |
             |                    |
       logA.join(logB) <----------+
             |
             v
+---------------------------+
|"one","hello","two","world"|
+---------------------------+

Status

Basic functionality implemented (Oct 3, 2019)

  • essential log and entry operations
  • testing lacking
  • documentation lacking to some extent
  • stores entries in IPFS only as JSON at the moment, not as CBOR DAGs

Requirements

  • Rust 2018 edition

Tests

cargo test

License

MIT © 2016–2018 Protocol Labs Inc.,
2016–2019 Haja Networks Oy,
2019 Equilibrium Labs.

Releases

No releases published

Packages

 
 
 

Contributors

Languages