Skip to content

Latest commit

 

History

History
96 lines (66 loc) · 3.09 KB

README.md

File metadata and controls

96 lines (66 loc) · 3.09 KB

react-native-matrix-sdk

⚡️ FFI bindings for matrix-rust-sdk in a React Native Turbo Module ⚡️

lint library android ios

Powered by uniffi-bindgen-react-native and create-react-native-library.

Installation

This package is available in the npm registry.

npm i @unomed/react-native-matrix-sdk
yarn add @unomed/react-native-matrix-sdk

You also have to install uniffi-bindgen-react-native. This will only be necessary until its Pod has been released. Make sure that the SHA matches the release of react-native-matrix-sdk.

npm add https://github.com/jhugman/uniffi-bindgen-react-native#$sha
yarn add uniffi-bindgen-react-native@https://github.com/jhugman/uniffi-bindgen-react-native#$sha

Afterwards add the Pod and run pod install.

target 'MyAwesomeApp' do
  pod 'uniffi-bindgen-react-native', :path => '../node_modules/uniffi-bindgen-react-native'
  ...
end

Installation from local checkout

Clone the repository into a sibling folder of your app and then install the package using a relative path.

npm add ../react-native-matrix-sdk

You might have to run yarn prepare in case it's not executed by default. Additionally you need to change metro.config.js to find and watch the module's source code.

const config = {
  resolver: {
    extraNodeModules: {
      'react-native-matrix-sdk': path.resolve(__dirname, '../react-native-matrix-sdk'),
    }, ...
  },
  watchFolders: [
    path.resolve(__dirname, '../react-native-matrix-sdk'), ...
  ]
};

On the first build or any time you update the version of matrix-rust-sdk, you'll have to rebuild the Rust code and regenerate the module with

yarn generate

In future, you will be able to install the module from npm.

Usage

See src/index.ts for the module's full API. You may also find a usage example in example/src/App.tsx.

Contributing

See the contributing guide to learn about the development and contribution workflow.

License

Apache-2.0