Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
This repository was archived by the owner on Oct 23, 2022. It is now read-only.
/rust-ipfsPublic archive

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

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

rs-ipfs/rust-ipfs


Rust IPFS

The Interplanetary File System (IPFS), implemented in Rust

Not Maintained

Table of Contents

Description

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 Not Maintained

You can see details about what's implemented, what's not, and also learn about other ecosystem projects, atAre We IPFS Yet?

For more information about IPFS see:https://docs.ipfs.io/introduction/overview/

Install

Rust IPFS depends onprotoc andopenssl.

Dependencies

First, install the dependencies.

With apt:

$ apt-get install protobuf-compiler libssl-dev zlib1g-dev

With yum:

$ yum install protobuf-compiler libssl-dev zlib1g-dev

Installrust-ipfs itself

Therust-ipfs binaries can be built from source. Our goal is to always be compatible with thestable release of Rust.

$ git clone https://github.com/rs-ipfs/rust-ipfs&&cd rust-ipfs$ cargo build --workspace

You will then find the binaries inside of the project root's/target/debug folder.

Getting started

We recommend browsing theexamples, thehttp crate tutorial andtests 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:

$ cargotest --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 foundhere. The Go and JS interoperability tests are behind a feature flag and can be run with:

$ cargotest --feature=test_go_interop$ cargotest --feature=test_js_interop

These are mutually exclusive, i.e.--all-features won't work as expected.

Note: you will need to set theGO_IPFS_PATH and theJS_IPFS_PATH environment variables to point to the relevant IPFS binary.

Contributing

Seethe 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

Special thanks to the Web3 Foundation and Protocol Labs for their devgrant support.

Completed Work

  • Project Setup
  • Testing Setup
    • Conformance testing
  • HTTP API Scaffolding
  • UnixFS Support
  • /pubsub/{publish,subscribe,peers,ls}
  • /swarm/{connect,peers,addrs,addrs/local,disconnect}
  • /id
  • /version
  • /shutdown
  • /block/{get,put,rm,stat}
  • /dag/{put,resolve}
  • /refs and/refs/local
  • /bitswap/{stat,wantlist}
  • /cat
  • /get
  • /resolve

Work in Progress

  • /bootstrap
  • /dht
  • interop testing

Work still required

  • /name
  • /ping
  • /key
  • /config
  • /stats
  • /files (regular and mfs)
  • a few other miscellaneous endpoints not enumerated here

Maintainers

Rust IPFS was originally authored by @dvc94ch and was maintained by @koivunej, and @aphelionz. Special thanks is given toProtocol Labs andEquilibrium.

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.
  • ipfs-embed - An implementation based onsled
  • rust-ipld - Basic rust ipld library supportingdag-cbor,dag-json anddag-pb formats.
  • PolkaX's ownrust-ipfs
  • Parity'srust-libp2p, which does a lot the of heavy lifting here

If you know of another implementation or another cool project adjacent to these efforts, let us know!

Contributors

Code Contributors

This project exists thanks to all the people who contribute. [Contribute].

Financial Contributors

Become a financial contributor and help us sustain our community. [Contribute]

Individuals

Organizations

Support this project with your organization. Your logo will show up here with a link to your website. [Contribute]

License

Dual licensed under MIT or Apache License (Version 2.0). SeeLICENSE-MIT andLICENSE-APACHE for more details.

Trademarks

TheRust logo and wordmark are trademarks owned and protected by theMozilla Foundation. The Rust and Cargo logos (bitmap and vector) are owned by Mozilla and distributed under the terms of theCreative Commons Attribution license (CC-BY).

About

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

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp