react-native-gomobile-ipfs
v0.1.6
Published
โ๏ธ ๐ Access the Interplanetary File System (IPFS) from React Native without trusted third parties.
Downloads
312
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, 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.
๐ฒ 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.json
orapp.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 prebuild
to generate Expo-friendly native binaries. - Finally, run
eas build
to build a new binary, or useyarn ios
oryarn android
to 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.