react-native-gomobile-ipfs
v0.1.6
Published
โ๏ธ ๐ Access the Interplanetary File System (IPFS) from React Native without trusted third parties.
Downloads
273
Readme
react-native-gomobile-ipfs
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.
๐ Getting Started
You can install react-native-gomobile-ipfs using Yarn:
yarn add react-native-gomobile-ipfsโ๏ธ Usage
In this module, importing 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.
๐ฒ Running on Expo
- You can install to your project using
npx expo install react-native-gomobile-ipfs. - Next, you'll need to add the Helios plugin to your Expo config (
app.json,app.config.jsonorapp.config.js):
{
"expo": {
"name": "my-app",
+ "plugins": [
+ [
+ "react-native-gomobile-ipfs",
+ {
+ "bluetoothPermissionText": "$(PRODUCT_NAME) needs access to Bluetooth."
+ }
+ ]
+ ]
}
}- Once that's done, use
npx expo prebuildto generate Expo-friendly native binaries. - Finally, run
eas buildto build a new binary, or useyarn iosoryarn androidto start running.
Note: To run
eas build, you'll need tonpm install --global expo-cli eas-cli.
๐ Building from Source
To build from source for Android and iOS, you'll need the following tools installed:
โ ๏ธ Currently the build process is only supported on Apple Silicon.
With these installed, run yarn gomobileup from the project root to generate the native binaries and link the example application.
