0.2.1 |
|
---|---|
0.2.0 |
|
0.0.0 |
|
#16 in #block-store
660KB
14K SLoC
Rust IPFS
星际文件系统(IPFS),用Rust实现
目录
描述
此存储库包含IPFS核心实现的crates,包括块存储、libp2p集成,包括DHT内容发现和pubsub支持,以及HTTP API绑定。我们的目标是利用Rust的独特属性来创建强大、性能卓越的软件,即使在资源受限的环境中也能工作,同时最大限度地与其他IPFS“风味”互操作,即JavaScript和Go。
项目状态 - Alpha
您可以在Are We IPFS Yet?查看已实现的内容、未实现的内容,并了解其他生态系统项目。
有关IPFS的更多信息,请参阅:https://docs.ipfs.io/introduction/overview/
安装
Rust IPFS依赖于protoc
和openssl
。
依赖项
首先,安装依赖项。
使用apt
# apt-get install protobuf-compiler libssl-dev zlib1g-dev
使用yum
# yum install protobuf-compiler libssl-dev zlib1g-dev
安装rust-ipfs
本身
可以从源代码构建rust-ipfs
二进制文件。我们的目标是始终与Rust的稳定版本兼容。
$ git clone https://github.com/rs-ipfs/rust-ipfs && cd rust-ipfs
$ cargo build --workspace
然后,您将在项目根目录的/target/debug
文件夹中找到二进制文件。
注意:通过cargo install
可用的二进制文件即将推出。
入门
我们建议浏览示例和测试,以了解如何在不同的场景中使用Rust-IPFS。
路线图
特别感谢Web3基金会和Protocol Labs对其devgrant支持。
已完成的工作
- 项目设置
- 测试设置
- 一致性测试
- HTTP API框架
- UnixFS支持
/pubsub/{publish,subscribe,peers,ls}
/swarm/{connect,peers,addrs,addrs/local,disconnect}
/id
/version
/shutdown
/block/{get,put,rm,stat}
/dag/{put,resolve}
/refs
和/refs/local
/bitswap/{stat,wantlist}
/cat
/get
/resolve
正在进行中
/bootstrap
/dht
- 互操作性测试
仍需工作
/name
/ping
/key
/config
/stats
/files
(常规和mfs)- 此处未列出的一些其他杂项端点
维护者
Rust IPFS最初由@dvc94ch编写,现在由@koivunej和@aphelionz积极维护。特别感谢Protocol Labs和Equilibrium。
替代方案和其他相关项目
已注意到Rust-IPFS的名称和知名度可能从“先行者”的角度为其组织服务。然而,存在具有不同哲学的替代方案,我们认为支持多元化的IPFS社区很重要,并将最终有助于产生最佳的解决方案。
rust-ipfs-api
- 一个针对现有IPFS HTTP API的Rust客户端。支持hyper和actix。ipfs-embed
- 基于sled
的实现rust-ipld
- 基本的Rust ipld库,支持dag-cbor
、dag-json
和dag-pb
格式。- PolkaX的
rust-ipfs
- Parity的
rust-libp2p
,在这里做了很多繁重的工作
如果您知道其他实现或与这些努力相邻的其他有趣项目,请告诉我们!
贡献
有关更多信息,请参阅贡献文档。
您还可以通过联系或成为OpenCollective的赞助者来财务上支持项目。
贡献者
代码贡献者
本项目之所以存在,归功于所有贡献者。[贡献]
财务贡献者
成为财务贡献者,帮助我们维持社区。[贡献]
个人
组织
用您的组织支持此项目。您的徽标将在此处显示,并带有链接到您的网站。[贡献]
许可
双许可MIT或Apache许可证(版本2.0)。有关详细信息,请参阅LICENSE-MIT和LICENSE-APACHE。
商标
Rust标志和字标是Mozilla Foundation拥有的商标,并由其保护。Rust和Cargo标志(位图和矢量)归Mozilla所有,并按Creative Commons Attribution许可证(CC-BY)的条款分发。
依赖项
~17-30MB
~479K SLoC