finds.dev← search

// the find

rs-ipfs/rust-ipfs

★ 1,281 · Rust · Apache-2.0 · updated Oct 2022

The InterPlanetary File System (IPFS), implemented in Rust.

A Rust implementation of IPFS — the core protocol stack including blockstore, libp2p integration (DHT, pubsub), BitSwap, UnixFS, and an HTTP API compatible with the go-ipfs interface. Aimed at anyone who wants IPFS in a resource-constrained or performance-sensitive environment without pulling in the Go runtime. The repo is explicitly abandoned as of late 2022.

The workspace layout is clean — blockstore, bitswap, unixfs, and http are separate crates with clear responsibilities rather than one monolithic blob. The unixfs crate is the most complete piece and could be used standalone for DAG-PB/UnixFS encoding and traversal. Conformance and interop test infrastructure against go-ipfs and js-ipfs exists, which is the right way to validate protocol compatibility. Fuzz targets for IPLD decoding show someone was thinking about correctness, not just happy-path functionality.

Abandoned — the README badge says it directly, last commit was October 2022, and large chunks of the HTTP API (/name, /key, /config, /files, /stats) were never implemented. The DHT and bootstrap work was still in-progress at abandonment, meaning you can't actually form a functioning node on the public IPFS network. If you need a live Rust IPFS node today, look at iroh (n0-computer/iroh) instead — it's actively maintained and has made different but more pragmatic tradeoffs. The bitswap implementation predates the newer Bitswap 1.2.0 protocol, so interop with modern go-ipfs nodes is unclear.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →