Access to the Interplanetary File System (IPFS) for React Native apps without depending upon trusted third parties.
Enables self-sovereign access to decentralized file systems for cross-platform applications. The property of decentralization is critical for dApps; where data verifiability, integrity and availability are of paramount importance; usually in applications which deal with censorship-resistance or demand reliable off-chain storage.
โน๏ธ This project is a hard fork of
tesseract-one/react-native-gomobile-ipfs
๐
react-native-gomobile-ipfs
works by launching a dedicated Kubo RPC API v0 which can be easily accessed at runtime via traditional networking libraries such as axios
.
You can install react-native-gomobile-ipfs
using Yarn:
yarn add react-native-gomobile-ipfs
In this module, import
ing react-native-gomobile-ipfs
exports a start()
function, which allows the app to launch a localhost API. In the example below, we show how to cat
the hello worlds
tutorial hash:
import { start, getIpfsUri } from 'react-native-gomobile-ipfs';
import axios from 'axios';
// ...
const { stop } = await start();
const uri = getIpfsUri(); // i.e. "http://localhost:5001/api/v0"
const {data: result} = await axios({
url: `${uri}/cat?arg=QmZ4tDuvesekSs4qM5ZBKpXiZGun7S2CYtEZRB3DYXkjGx`,
method: 'post',
});
console.log(result); // "hello, worlds"
await stop();
By calling getIpfsUri()
, we can determine the platform-specific localhost
URI of our IPFS API. Once finished, we safely close()
the resource to terminate the server.
For further demonstration, please check out the Example App.
To build from source for Android and iOS, you'll need the following tools installed:
With these installed, run yarn gomobileup
from the project root to generate the native binaries and link the example application.