2024-09-23 15:28:32 -04:00
2024-09-20 12:42:01 -04:00
2024-09-23 15:27:28 -04:00
2024-09-23 15:27:28 -04:00
2024-09-23 15:27:28 -04:00
2024-09-23 15:27:28 -04:00
2024-09-23 15:27:28 -04:00
2024-09-11 22:03:27 -04:00
2024-09-21 16:35:14 -04:00
2024-09-15 12:35:12 -04:00
2024-09-11 22:03:27 -04:00
2024-09-11 22:03:27 -04:00
2024-09-11 22:03:27 -04:00
2024-09-15 12:38:04 -04:00
2024-09-21 16:35:14 -04:00
2024-09-23 15:27:28 -04:00
2024-09-15 12:35:12 -04:00
2024-09-11 22:03:27 -04:00
2024-09-15 12:35:12 -04:00
2024-09-11 22:03:27 -04:00
2024-09-20 12:42:01 -04:00

react-native-pubky

React Native implementation of pubky

Installation

npm install @synonymdev/react-native-pubky

Implementation Status

Implemented Methods

  • auth: Authentication functionality.
  • parseAuthUrl: Method to decode an authUrl.
  • publish: Functionality to publish content.
  • resolve: Functionality to resolve content.

Methods to be Implemented

  • signIn: Sign-in to a homeserver.
  • signUp: Sign-up to a homeserver and update Pkarr accordingly.
  • signOut: Sign-out from a homeserver.
  • put: Upload a small payload to a given path.
  • get: Download a small payload from a given path relative to a pubky author.

Usage

Auth

import { auth } from '@synonymdev/react-native-pubky';

const authRes = await auth(
  'pubkyauth:///?caps=/pub/pubky.app/:rw,/pub/foo.bar/file:r&secret=U55XnoH6vsMCpx1pxHtt8fReVg4Brvu9C0gUBuw-Jkw&relay=http://167.86.102.121:4173/',
  'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
);
if (authRes.isErr()) {
  console.log(authRes.error.message);
  return;
}
console.log(authRes.value);

parseAuthUrl

import { parseAuthUrl } from '@synonymdev/react-native-pubky';

const pubkyAuthUrl = 'pubkyauth:///?relay=https://demo.httprelay.io/link&capabilities=/pub/pubky.app:rw,/pub/example.com/nested:rw&secret=FyzJ3gJ1W7boyFZC1Do9fYrRmDNgCLNRwEu_gaBgPUA';
const parseRes = await parseAuthUrl(pubkyAuthUrl);
if (parseRes.isErr()) {
  console.log(parseRes.error.message);
  return;
}
console.log(parseRes.value);

publish

import { publish } from '@synonymdev/react-native-pubky';

const publishRes = await publish(
  'recordnametest',
  'recordcontenttest',
  'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'
);
if (publishRes.isErr()) {
  console.log(publishRes.error.message);
  return;
}
console.log(publishRes.value);

resolve

import { resolve } from '@synonymdev/react-native-pubky';

const resolveRes = await resolve(
  'z4e8s17cou9qmuwen8p1556jzhf1wktmzo6ijsfnri9c4hnrdfty'
);
if (resolveRes.isErr()) {
  console.log(resolveRes.error.message);
  return;
}
console.log(resolveRes.value);

Local Installation

  1. Clone & npm install:
git clone git@github.com:pubky/react-native-pubky.git && cd react-native-pubky && npm i
  1. Delete the rust/pubky directory to prevent a memory error (This step will be removed once pubky is public).
  2. Yarn add it to your project:
yarn add path/to/react-native-pubky

Update Bindings

After making changes to any of the Rust files, the bindings will need to be updated. To do this, run the following command:

npm run update-bindings

Finally, ensure that PubkyModule.kt, Pubky.swift, Pubky.mm & src/index.tsx are updated accordingly based on the changes made to the Rust files.

License

MIT


Resources

Description
No description provided
Readme MIT 451 MiB
Languages
Kotlin 38.3%
Swift 23%
C 12.7%
TypeScript 10.7%
JavaScript 9.5%
Other 5.8%