{"id":13587096,"url":"https://github.com/rs-ipfs/rust-ipfs","last_synced_at":"2025-09-30T01:32:08.417Z","repository":{"id":37266316,"uuid":"170600558","full_name":"rs-ipfs/rust-ipfs","owner":"rs-ipfs","description":"The InterPlanetary File System (IPFS), implemented in Rust.","archived":true,"fork":false,"pushed_at":"2022-10-22T15:08:00.000Z","size":2973,"stargazers_count":1265,"open_issues_count":62,"forks_count":165,"subscribers_count":42,"default_branch":"master","last_synced_at":"2024-10-30T03:25:31.733Z","etag":null,"topics":["decentralized","immutable","ipfs","ipld","libp2p","p2p","peer-to-peer","rust","rust-ipfs"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rs-ipfs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE-APACHE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-02-14T00:27:59.000Z","updated_at":"2024-10-28T19:26:30.000Z","dependencies_parsed_at":"2022-07-20T11:47:38.216Z","dependency_job_id":null,"html_url":"https://github.com/rs-ipfs/rust-ipfs","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs-ipfs%2Frust-ipfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs-ipfs%2Frust-ipfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs-ipfs%2Frust-ipfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rs-ipfs%2Frust-ipfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rs-ipfs","download_url":"https://codeload.github.com/rs-ipfs/rust-ipfs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":234687131,"owners_count":18871702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["decentralized","immutable","ipfs","ipld","libp2p","p2p","peer-to-peer","rust","rust-ipfs"],"created_at":"2024-08-01T15:06:01.133Z","updated_at":"2025-09-30T01:32:03.053Z","avatar_url":"https://github.com/rs-ipfs.png","language":"Rust","funding_links":["https://opencollective.com/rs-ipfs/contribute","https://opencollective.com/rs-ipfs","https://opencollective.com/rs-ipfs/organization/0/website","https://opencollective.com/rs-ipfs/organization/1/website","https://opencollective.com/rs-ipfs/organization/2/website","https://opencollective.com/rs-ipfs/organization/3/website","https://opencollective.com/rs-ipfs/organization/4/website","https://opencollective.com/rs-ipfs/organization/5/website","https://opencollective.com/rs-ipfs/organization/6/website","https://opencollective.com/rs-ipfs/organization/7/website","https://opencollective.com/rs-ipfs/organization/8/website","https://opencollective.com/rs-ipfs/organization/9/website"],"categories":["Rust"],"sub_categories":[],"readme":"\u003ch1\u003e\n  \u003cimg src=\"https://ipfs.io/ipfs/QmRcFsCvTgGrB52UGpp9P2bSDmnYNTAATdRf4NBj8SKf77/rust-ipfs-logo-256w.png\" width=\"128\" /\u003e\u003cbr /\u003e\n  Rust IPFS\n\u003c/h1\u003e\n\n\u003e The Interplanetary File System (IPFS), implemented in Rust\n\n[![Not Maintained](https://img.shields.io/badge/Maintenance%20Level-Abandoned-orange.svg)](https://gist.github.com/cheerfulstoic/d107229326a01ff0f333a1d3476e068d)\n\n## Table of Contents\n\n- [Description](#description)\n    - [Project Status](#project-status---alpha)\n- [Install](#install)\n    - [Dependencies](#dependencies)\n    - [Rust IPFS](#install-rust-ipfs-itself)\n- [Getting Started](#getting-started)\n    - [Running the tests](#running-the-tests)\n    - [Contributing](#contributing)\n- [Roadmap](#roadmap)\n    - [Completed](#completed-work)\n    - [In progress](#work-in-progress)\n    - [Still required](#work-still-required)\n- [Maintainers](#maintainers)\n- [Alternatives](#alternatives-and-other-cool-related-projects)\n- [Contributors](#contributors)\n- [License](#license)\n- [Trademarks](#trademarks)\n\n## Description\n\nThis 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.\n\n### Project Status - ~~`Alpha`~~ Not Maintained\n\nYou can see details about what's implemented, what's not, and also learn about other ecosystem projects, at [Are We IPFS Yet?](https://areweipfsyet.rs)\n\nFor more information about IPFS see: https://docs.ipfs.io/introduction/overview/\n\n## Install\n\nRust IPFS depends on `protoc` and `openssl`.\n\n### Dependencies\n\nFirst, install the dependencies.\n\nWith apt:\n\n```bash\n$ apt-get install protobuf-compiler libssl-dev zlib1g-dev\n```\n\nWith yum:\n\n```bash\n$ yum install protobuf-compiler libssl-dev zlib1g-dev\n```\n\n### Install `rust-ipfs` itself\n\nThe `rust-ipfs` binaries can be built from source. Our goal is to always be compatible with the **stable** release of Rust.\n\n```bash\n$ git clone https://github.com/rs-ipfs/rust-ipfs \u0026\u0026 cd rust-ipfs\n$ cargo build --workspace\n```\n\nYou will then find the binaries inside of the project root's `/target/debug` folder.\n\n## Getting started\n\nWe recommend browsing the [examples](https://github.com/rs-ipfs/rust-ipfs/tree/master/examples), the [http crate tutorial](https://github.com/rs-ipfs/rust-ipfs/tree/master/http#getting-started) and [tests](https://github.com/rs-ipfs/rust-ipfs/tree/master/tests) in order to see how to use Rust-IPFS in different scenarios.\n\n### Running the tests\n\nThe project currently features unit, integration, conformance and interoperability tests. Unit and integation tests can be run with:\n\n```bash\n$ cargo test --workspace\n```\n\nThe `--workspace` flag ensures the tests from the http and unixfs crates are also run.\n\nExplanations on how to run the conformance tests can be found [here](https://github.com/rs-ipfs/rust-ipfs/tree/master/conformance). The Go and JS interoperability tests are behind a feature flag and can be run with:\n```bash\n$ cargo test --feature=test_go_interop\n$ cargo test --feature=test_js_interop\n```\n\nThese are mutually exclusive, i.e. `--all-features` won't work as expected.\n\nNote: you will need to set the `GO_IPFS_PATH` and the `JS_IPFS_PATH` environment variables to point to the relevant IPFS binary.\n\n### Contributing\n\nSee [the contributing docs](./CONTRIBUTING.md) for more info.\n\nIf you have any questions on the use of the library or other inquiries, you are welcome to submit an issue.\n\n## Roadmap\n\nSpecial thanks to the Web3 Foundation and Protocol Labs for their devgrant support.\n\n### Completed Work\n\n* Project Setup\n* Testing Setup\n    * Conformance testing\n* HTTP API Scaffolding\n* UnixFS Support\n* `/pubsub/{publish,subscribe,peers,ls}`\n* `/swarm/{connect,peers,addrs,addrs/local,disconnect}`\n* `/id`\n* `/version`\n* `/shutdown`\n* `/block/{get,put,rm,stat}`\n* `/dag/{put,resolve}`\n* `/refs` and `/refs/local`\n* `/bitswap/{stat,wantlist}`\n* `/cat`\n* `/get`\n* `/resolve`\n\n### Work in Progress\n- `/bootstrap`\n- `/dht`\n- interop testing\n\n### Work still required\n- `/name`\n- `/ping`\n- `/key`\n- `/config`\n- `/stats`\n- `/files` (regular and mfs)\n- a few other miscellaneous endpoints not enumerated here\n\n## Maintainers\n\nRust IPFS was originally authored by @dvc94ch and was maintained by @koivunej, and @aphelionz. Special thanks is given to [Protocol Labs](https://github.com/protocol) and [Equilibrium](https://github.com/eqlabs).\n\n## Alternatives and other cool, related projects\n\nIt’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.\n\n- [`rust-ipfs-api`](https://github.com/ferristseng/rust-ipfs-api) - A Rust client for an existing IPFS HTTP API. Supports both hyper and actix.\n- [`ipfs-embed`](https://github.com/ipfs-rust/ipfs-embed/) - An implementation based on [`sled`](https://github.com/ipfs-rust/ipfs-embed/)\n- [`rust-ipld`](https://github.com/ipfs-rust/rust-ipld) - Basic rust ipld library supporting `dag-cbor`, `dag-json` and `dag-pb` formats.\n- PolkaX's own [`rust-ipfs`](https://github.com/PolkaX/rust-ipfs)\n- Parity's [`rust-libp2p`](https://github.com/libp2p/rust-libp2p), which does a lot the of heavy lifting here\n\nIf you know of another implementation or another cool project adjacent to these efforts, let us know!\n\n## Contributors\n\n### Code Contributors\n\nThis project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].\n\u003ca href=\"https://github.com/rs-ipfs/rust-ipfs/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/rs-ipfs/contribute)]\n\n#### Individuals\n\n\u003ca href=\"https://opencollective.com/rs-ipfs\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/individuals.svg?width=890\"\u003e\u003c/a\u003e\n\n#### Organizations\n\nSupport this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/rs-ipfs/contribute)]\n\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/0/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/0/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/1/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/1/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/2/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/2/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/3/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/3/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/4/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/4/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/5/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/5/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/6/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/6/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/7/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/7/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/8/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/8/avatar.svg\"\u003e\u003c/a\u003e\n\u003ca href=\"https://opencollective.com/rs-ipfs/organization/9/website\"\u003e\u003cimg src=\"https://opencollective.com/rs-ipfs/organization/9/avatar.svg\"\u003e\u003c/a\u003e\n\n## License\n\nDual licensed under MIT or Apache License (Version 2.0). See [LICENSE-MIT](./LICENSE-MIT) and [LICENSE-APACHE](./LICENSE-APACHE) for more details.\n\n## Trademarks\n\nThe [Rust logo and wordmark](https://www.rust-lang.org/policies/media-guide) are trademarks owned and protected by the [Mozilla Foundation](https://mozilla.org). 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)](https://creativecommons.org/licenses/by/4.0/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frs-ipfs%2Frust-ipfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frs-ipfs%2Frust-ipfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frs-ipfs%2Frust-ipfs/lists"}