android-ipfs-lite
A lightweight, extensible IPFS peer for Android.
IPFS Lite runs the minimal setup required to get and put IPLD DAGs on the IPFS network. It is a port of the Go IPFS Lite library.
Table of Contents
Background
IPFS Lite runs the minimal setup required to provide a DAG service. It is a port of the Go IPFS Lite library, and as such, has the same requirements. The goal of IPFS Lite is to run the bare minimal functionality for any IPLD-based application to interact with the IPFS network (by getting and putting blocks). This saves having to deal with the complexities of using a full IPFS daemon, while maintaining the ability to share the underlying libp2p host and DHT with other components.
IPFS-lite Libraries
The following includes information about support for ipfs-lite.
Name | Build | Language | Description |
---|---|---|---|
ipfs-lite |
The reference implementaiton of ipfs-lite, written in Go. | ||
js-ipfs-lite |
The Javascript version of ipfs-lite available for web, nodejs, and React Native applications. | ||
ios-ipfs-lite |
The iOS ipfs-lite library for use in Objc and Swift apps | ||
android-ipfs-lite |
The Java ipfs-lite library for us in Android apps | ||
grpc-ipfs-lite |
A common gRPC API interface that runs on the Go ipfs-lite node. |
Roadmap
- Start IPFS Lite
- Stop IPFS Lite
-
getFile(String cid)
Get file by Content Address. -
getFileSync(String cid)
Synchronously get file by Content Address. -
addFile(byte[] data)
Add file to IPFS. -
addFileSync(byte[] data)
Synchronously Add file to IPFS. -
getNode(String cid)
Get IPLD node. -
removeNode(String cid)
Remove IPLD node. - Add IPLD node.
-
resolveLink(String link)
Install
The IPFS Lite library is published in Textile's Bintray Maven repository. You can install it using Gradle.
First, you'll need to add Textile's Bintray Maven repository to you project's top level build.gradle
in the allProjects.repositories
section:
allprojects {
repositories {
...
maven { url 'https://dl.bintray.com/textile/maven' }
maven { url 'https://jitpack.io' }
...
}
}
Next, add the IPFS Lite dependency to your app module's build.gradle
dependencies
section, specifying the latest version available:
dependencies {
...
implementation 'io.textile:ipfslite:0.1.4'
...
}
Usage
Initialize and start a Peer
Boolean debug = false;
Peer litePeer = new Peer('/path/', debug, true);
litePeer.start();
- To learn see how a path is choosen, see the test suite example.
Add data
String message = "Hello World";
String cid = litePeer.addFileSync(message.getBytes());
Add a file
File file = openFile("secret_plans");
byte[] bytes = Files.readAllBytes(file.toPath());
String cid = litePeer.addFileSync(bytes);
// OR Asynchronously
litePeer.addFile(bytes, resultHandler);
Fetch a file by CID
byte[] data = litePeer.getFileSync("bafybeic35nent64fowmiohupnwnkfm2uxh6vpnyjlt3selcodjipfrokgi");
// OR Asynchronously
litePeer.getFile("bafybeic35nent64fowmiohupnwnkfm2uxh6vpnyjlt3selcodjipfrokgi", resultHandler);
Maintainers
Contributing
PRs accepted.
Small note: If editing the README, please conform to the standard-readme specification.
License
MIT (c) 2019 Textile