Coder Social home page Coder Social logo

android-ipfs-lite's Introduction

android-ipfs-lite

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

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 Build Status golang The reference implementaiton of ipfs-lite, written in Go.
js-ipfs-lite Build status javascript The Javascript version of ipfs-lite available for web, nodejs, and React Native applications.
ios-ipfs-lite Build status objc The iOS ipfs-lite library for use in Objc and Swift apps
android-ipfs-lite Build status java The Java ipfs-lite library for us in Android apps
grpc-ipfs-lite Build status java 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();

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

Andrew Hill

Contributing

See the contributing file!

PRs accepted.

Small note: If editing the README, please conform to the standard-readme specification.

License

MIT (c) 2019 Textile

android-ipfs-lite's People

Contributors

andrewxhill avatar asutula avatar dianhsu avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.