This repository contains the crates for the IPFS core implementation which includes a blockstore, a libp2p integration which includes DHT content discovery and pubsub support, and HTTP API bindings. 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
You can see details about what's implemented, what's not, and also learn about other ecosystem projects, at Are We IPFS Yet?
You will then find the binaries inside of the project root's /target/debug folder.
Note: binaries available via cargo install is coming soon.
Getting started
We recommend browsing the examples, the http crate tutorial and tests in order to see how to use Rust-IPFS in different scenarios.
Running the tests
The project currently features unit, integration, conformance and interoperability tests. Unit and integation tests can be run with:
$ cargo test --workspace
The --workspace flag ensures the tests from the http and unixfs crates are also run.
Explanations on how to run the conformance tests can be found here. The Go and JS interoperability tests are behind a feature flag and can be run with:
$ cargo test --feature=test_go_interop
$ cargo test --feature=test_js_interop
These are mutually exclusive, i.e. --all-features won't work as expected.
Note: you will need to set the GO_IPFS_PATH and the JS_IPFS_PATH environment variables to point to the relevant IPFS binary.
a few other miscellaneous endpoints not enumerated here
Maintainers
Rust IPFS was originally authored by @dvc94ch and now actively maintained by @koivunej, and @aphelionz. Special thanks is given to Protocol Labs and Equilibrium.
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.
rust-ipfs-api - A Rust client for an existing IPFS HTTP API. Supports both hyper and actix.
请发表评论