Skip to content

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

License

Notifications You must be signed in to change notification settings

unomed-dev/react-native-matrix-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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