0.1.6 â€ĸ Published 2 years ago

react-native-gomobile-ipfs v0.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

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

  1. You can install to your project using npx expo install react-native-gomobile-ipfs.
  2. Next, you'll need to add the Helios plugin to your Expo config (app.json, app.config.json or app.config.js):
{
  "expo": {
    "name": "my-app",
+   "plugins": [
+     [
+       "react-native-gomobile-ipfs",
+       {
+         "bluetoothPermissionText": "$(PRODUCT_NAME) needs access to Bluetooth."
+       }
+     ]
+   ]
  }
}
  1. Once that's done, use npx expo prebuild to generate Expo-friendly native binaries.
  2. Finally, run eas build to build a new binary, or use yarn ios or yarn android to start running.

Note: To run eas build, you'll need to npm 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.

âœŒī¸ License

MIT