⚡️ FFI bindings for matrix-rust-sdk in a React Native Turbo Module ⚡️
Powered by uniffi-bindgen-react-native and create-react-native-library.
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
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.
See src/index.ts for the module's full API. You may also find a usage example in example/src/App.tsx.
See the contributing guide to learn about the development and contribution workflow.
Apache-2.0