// the find
rs-ipfs/rust-ipfs
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.