All Projects → rs-ipfs → Rust Ipfs

rs-ipfs / Rust Ipfs

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

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Rust Ipfs

Js Ipfs
IPFS implementation in JavaScript
Stars: ✭ 6,129 (+729.36%)
Mutual labels:  immutable, p2p, ipfs, peer-to-peer, decentralized
Unstoppable Wallet Ios
A secure and decentralized Bitcoin and other cryptocurrency wallet for iPhone. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 180 (-75.64%)
Mutual labels:  p2p, ipfs, peer-to-peer, decentralized
Unstoppable Wallet Android
A secure and decentralized Bitcoin and other cryptocurrency wallet for Android phones. Supports Bitcoin, Ethereum, EOS, Binance Chain, Bitcoin Cash, DASH, ...
Stars: ✭ 165 (-77.67%)
Mutual labels:  p2p, ipfs, peer-to-peer, decentralized
field-manual
The Offical User's Guide to OrbitDB
Stars: ✭ 178 (-75.91%)
Mutual labels:  peer-to-peer, ipfs, decentralized, p2p
pop
Run a point-of-presence within Myel, the community powered content delivery network.
Stars: ✭ 28 (-96.21%)
Mutual labels:  peer-to-peer, ipfs, decentralized, p2p
Peergos
A p2p, secure file storage, social network and application protocol
Stars: ✭ 895 (+21.11%)
Mutual labels:  p2p, ipfs, peer-to-peer, decentralized
Js Dag Service
Library for storing and replicating hash-linked data over the IPFS network.
Stars: ✭ 81 (-89.04%)
Mutual labels:  p2p, ipfs, peer-to-peer, decentralized
Orbit Db
Peer-to-Peer Databases for the Decentralized Web
Stars: ✭ 6,381 (+763.46%)
Mutual labels:  p2p, ipfs, peer-to-peer, decentralized
Decentralized Internet
A SDK/library for decentralized web and distributing computing projects
Stars: ✭ 406 (-45.06%)
Mutual labels:  p2p, peer-to-peer, decentralized
Gun
An open source cybersecurity protocol for syncing decentralized graph data.
Stars: ✭ 15,172 (+1953.04%)
Mutual labels:  p2p, peer-to-peer, decentralized
trystero
🤝 Serverless WebRTC matchmaking for painless P2P — Make any site multiplayer in a few lines — Use BitTorrent, IPFS, or Firebase
Stars: ✭ 512 (-30.72%)
Mutual labels:  peer-to-peer, ipfs, decentralized
Ensichat
Project discontinued
Stars: ✭ 143 (-80.65%)
Mutual labels:  p2p, peer-to-peer, decentralized
geesome-node
🦈 Your self-hosted decentralized Messenger, Social network, Media file storage on top of IPFS! Freely communicate in encrypted chat groups, share images, video, text or any data without a risk of censorship or blocking.
Stars: ✭ 90 (-87.82%)
Mutual labels:  peer-to-peer, ipfs, decentralized
ipfs-chat
Real-time P2P messenger using go-ipfs pubsub. TUI. End-to-end encrypted texting & file-sharing. NAT traversal.
Stars: ✭ 84 (-88.63%)
Mutual labels:  peer-to-peer, ipfs, decentralized
Ipfs Pubsub Room
IPFS Pubsub room
Stars: ✭ 229 (-69.01%)
Mutual labels:  p2p, ipfs, decentralized
Wikipedia Ipfs
An exploration to host Wikipedia in IPFS
Stars: ✭ 158 (-78.62%)
Mutual labels:  p2p, ipfs, decentralized
Layr
A decentralized (p2p) file storage system built atop Kademlia DHT that enforces data integrity, privacy, and availability through sharding, proofs of retrievability, redundancy, and encryption, with smart-contract powered incentive scheme
Stars: ✭ 90 (-87.82%)
Mutual labels:  peer-to-peer, decentralized, p2p
awesome-orbitdb
Useful resources for using OrbitDB and building projects on it
Stars: ✭ 87 (-88.23%)
Mutual labels:  ipfs, decentralized, p2p
Yjs
Shared data types for building collaborative software
Stars: ✭ 5,894 (+697.56%)
Mutual labels:  p2p, peer-to-peer, decentralized
Bitchatclient
Technitium Bit Chat, a secure, peer-to-peer, instant messenger!
Stars: ✭ 111 (-84.98%)
Mutual labels:  p2p, peer-to-peer, decentralized


Rust IPFS

The Interplanetary File System (IPFS), implemented in Rust

Financial Contributors on Open Collective standard-readme compliant Back on OpenCollective

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

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

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

Install

Rust IPFS depends on protoc and openssl.

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

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.

$ 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.

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.

Contributing

See the contributing docs for more info.

You can also back the project financially by reaching out or by becoming a backer on OpenCollective

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 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.
  • ipfs-embed - An implementation based on sled
  • rust-ipld - Basic rust ipld library supporting dag-cbor, dag-json and dag-pb formats.
  • PolkaX's own rust-ipfs
  • Parity's rust-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). 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).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].