The Interplanetary File System (IPFS), implemented in Rust
Table of Contents
- Description
- Install
- Getting Started
- Roadmap
- Maintainers
- Alternatives
- Contributors
- License
- Trademarks
Description
This repository is a fork of rust-ipfs, which contains the crates for the IPFS core implementation which includes a blockstore, a libp2p integration which includes DHT content discovery and pubsub support Our goal is to leverage both the unique properties of Rust to create powerful, performant software that works even in resource-constrained environments, while also maximizing interoperability with the other "flavors" of IPFS, namely JavaScript and Go.
Project Status - Alpha
This project is a WIP and everything is subject to change
For more information about IPFS see: https://docs.ipfs.io/introduction/overview/
Install
Rust IPFS depends on protoc
.
Note: This will change in the future.
Dependencies
First, install the dependencies.
With apt:
With yum:
Install rust-ipfs
itself
The rust-ipfs
binaries can be built from source. Our goal is to always be compatible with the stable release of Rust.
&&
You will then find the binaries inside of the project root's /target/debug
folder.
Getting started
We recommend browsing the examples and tests in order to see how to use Rust-IPFS in different scenarios.
Note: Test are a WIP
Running the tests
For information on running test, please see the archived readme. This may be outdated but this section will be updated in the future
Contributing
See the contributing docs for more info.
If you have any questions on the use of the library or other inquiries, you are welcome to submit an issue.
Roadmap
Completed Work
TBD
For previous completed work, please see the archived readme.
Maintainers
Rust IPFS was originally authored by @dvc94ch and was maintained by @koivunej, and @aphelionz, but now is maintained by @dariusc93.
For maintainers please see the archived readme.
Alternatives and other cool, related projects
It’s been noted that the Rust-IPFS name and popularity may serve its organization from a "first-mover" perspective. However, alternatives with different philosophies do exist, and we believe that supporting a diverse IPFS community is important and will ultimately help produce the best solution possible.
- Parity's
rust-libp2p
, which does a lot the of heavy lifting here - Iroh
iroh
- Another rust implementation of IPFS ipfs-embed
- An implementation based onsled
rust-ipfs-api
- A Rust client for an existing IPFS HTTP API. Supports both hyper and actix.rust-ipld
- Basic rust ipld library supportingdag-cbor
,dag-json
anddag-pb
formats.- PolkaX's own
rust-ipfs
If you know of another implementation or another cool project adjacent to these efforts, let us know!
Contributors
For previous/original contributors please see the archived readme.
Code Contributors
This project exists thanks to all the people who previously contributed to rust-ipfs. [Contribute].
For previous/original contributors, please see the archived readme.
License
Dual licensed under MIT or Apache License (Version 2.0). See LICENSE-MIT and LICENSE-APACHE for more details.
Trademarks
The Rust logo and wordmark are trademarks owned and protected by the Mozilla Foundation. The Rust and Cargo logos (bitmap and vector) are owned by Mozilla and distributed under the terms of the Creative Commons Attribution license (CC-BY).