Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

jhugman/uniffi-bindgen-react-native

Repository files navigation

CI Compatibility (Android) Compatibility (iOS) Compatibility (Android, latest) Compatibility (iOS, latest)

uniffi-bindgen-react-native

UniFFI is a multi-language bindings generator for Rust.

This project, uniffi-bindgen-react-native, is a uniFFI bindings generator for using Rust from React Native.

It provides tooling to generate:

  • Typescript and JSI C++ to call Rust from Typescript and back again
  • a Turbo-Module that installs the bindings into a running React Native library.

If you're ready to start, then start with a step-by-step tutorial to make a Rust turbo-module.

If you're new to uniFFI, then the UniFFI user guide or the UniFFI examples are interesting places to start.

Why uniffi-bindgen-react-native?

  • Spend more time writing Typescript and Rust
  • Full compatibility with uniffi-rs
  • Your Rust SDK is portable across multiple languages.

Why not, say WASM, via wasm-bindgen?

WASM is an amazing virtual machine however:

  • your Rust crate must make alternative arrangements if it needs things that the virtual machine does not offer:
    • threads and
    • file access.
  • you need to maintain a separate FFI (this is a temporary issue, solvable by something like uniFFI).

Who is using uniffi-bindgen-react-native?

Prior art and related projects

Contributing

If this tool sounds interesting to you, please help us develop it! You can:

Code of Conduct

This project is governed by Mozilla's Community Participation Guidelines.

Funding

uniffi-bindgen-react-native is led by James Hugman, with deep collaboration from the Filament engineering team, funded by Filament and Mozilla.

License

MPL-2.0

Morty Proxy This is a proxified and sanitized view of the page, visit original site.