IpfsLiteApi 0.1.3

IpfsLiteApi 0.1.3

Textile 维护。



 
依赖项
grpc-ipfs-lite= 0.1.4
Protobuf>= 0
gRPC-ProtoRPC>= 0
 

  • Aaron Sutula

ios-ipfs-lite

Made by Textile Chat on Slack GitHub license Release Version License Platform CircleCI branch docs standard-readme compliant

适用于 iOS 的轻量级、可扩展的 IPFS 节点。

IPFS Lite 运行所需的最小设置,以在 IPFS 网络上获取和设置 IPLD DAG。它是 Go IPFS Lite 库的移植。

内容表

背景

IPFS Lite 运行所需的最小设置,以提供一个 DAG 服务。它是 Go IPFS Lite 库的移植,因此有相同的要求。IPFS Lite 的目标是运行 IPLD 基于的应用程序与 IPFS 网络交互(通过获取和设置块)所需的最小功能。这样可以避免处理使用完整 IPFS 守护的复杂性,同时保持与其他组件共享底层 libp2p 主机和 DHT 的能力。

IPFS-lite 库

以下包括对ipfs-lite支持的信息。

名称 构建 语言 描述
ipfs-lite Build Status golang ipfs-lite的参考实现,用Go语言编写。
js-ipfs-lite Build status javascript 适用于Web、Nodejs和React Native应用程序的ipfs-lite的JavaScript版本。
ios-ipfs-lite Build status objc 用于Objc和Swift应用的iOS ipfs-lite库
android-ipfs-lite Build status java 用于Android应用中的Java ipfs-lite库
grpc-ipfs-lite Build status java 在Go ipfs-lite节点上运行的一个通用gRPC API接口。

路线图

  • 启动IPFS Lite
  • 停止IPFS Lite
  • addFileFromInput:params:completion: 通过NSInputStream添加数据。
  • getFileWithCid:completion: 异步通过内容地址获取文件。
  • getFileToOutput:cid:completion: 异步通过内容地址获取文件并将其写入到NSOutputStream
  • getNodeForCid:completion: 异步从IPFS获取一个IPLD节点。
  • getNodesForCids:completion: 获取多个IPLD节点。
  • hasBlock:completion: 查询本地节点是否具有指定的块
  • removeNodeForCid:completion: 移除一个IPLD节点。
  • removeNodesForCids:completion: 移除多个IPLD节点。
  • resolveLinkInNodeWithCid:path:completion: 在IPLD节点中通过路径解决链接。
  • treeInNodeWithCid:fromPath:depth:completion: 在IPLD节点中列出所有数据路径。
  • addNode 和一个IPLD节点。
  • addNodes 和多个IPLD节点。

安装

IPFS Lite库作为Cocoapod发布。

首先,您需要配置项目以使用Cocoapods

然后,简单地将IpfsLiteApi添加到您的Podfile

...
pod 'IpfsLiteApi'
...

并运行pod install

使用方法

初始化和启动一个Peer

NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *repoPath = [documents stringByAppendingPathComponent:@"ipfs-lite"];
NSError *error;
BOOL success = [IpfsLiteApi launch:repoPath debug:false lowMem: true error:&error];

添加数据

NSInputStream *input = [[NSInputStream alloc] initWithData:[@"Hello there\n" dataUsingEncoding:NSUTF8StringEncoding]];
[IpfsLiteApi.instance addFileFromInput:input parms:[[TTEAddParams alloc] init] completion:^(Node * _Nullable node, NSError * _Nullable error) {
    // handle the node or error
}];

添加一个文件

NSString *path = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"jpeg"];
NSInputStream *input = [[NSInputStream alloc] initWithFileAtPath:path];
[IpfsLiteApi.instance addFileFromInput:input params:[[TTEAddParams alloc] init] completion:^(Node * _Nullable node, NSError * _Nullable error) {
    // handle the node or error
}];

通过CID从NSOutputStream获取一个文件

NSString *documents = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *outputPath = [documents stringByAppendingPathComponent:@"out.jpeg"];
NSOutputStream *output = [NSOutputStream outputStreamToFileAtPath:outputPath append:NO];
[IpfsLiteApi.instance getFileToOutput:output cid:@"<a-file-cid>" completion:^(NSError * _Nullable error) {
    // Handle error if it exists or interact with data written to disk
}];

通过CID获取一个节点

[IpfsLiteApi.instance getNodeForCid:@"QmSnuWmxptJZdLJpKRarxBMS2Ju2oANVrgbr2xWbie9b2D" completion:^(Node * _Nullable node, NSError * _Nullable error) {
    // handle the node or error
}];

维护者

Aaron Sutula

贡献

参阅贡献文件

接受PRs。

小贴士:如果编辑README,请遵守标准README规范

许可证

MIT (c) 2019 Textile