Mozilla представила uniffi-bindgen-react-native — набор инструментов для создания биндингов, которые позволяют использовать библиотеки на Rust в Turbo Modules через UniFFI.
Что такое UniFFI?
UniFFI — это библиотека и инструмент от Mozilla, который автоматизирует процесс создания межъязыковых биндингов (bindings) для библиотек на Rust. С его помощью функциональность Rust-библиотек можно экспортировать в языки, такие как Kotlin (Android), Swift (iOS), Python и Ruby.
Для этого используется UniFFI Definition Language (UDL), с помощью которого описывается интерфейс библиотеки. На его основе генерируются динамические библиотеки под конкретные платформы (.so, .dll, .dylib), которые безопасно интегрируются в целевые приложения.
Как UniFFI работает с React Native?
В специальном конфигурационном файле
ubrn.config.yaml указываются Rust-библиотека или библиотеки, которые нужно использовать.С помощью команд
yarn ubrn:ios и yarn ubrn:android приложение и Rust-библиотеки собираются под нужные платформы.Эти команды используют инструменты UniFFI и генерируют TypeScript-биндинги на основе UDL-интерфейса библиотеки. Эти биндинги можно сразу использовать в приложении.
Пример и подробные инструкции вы найдете на сайте проекта uniffi-bindgen for React Native.
Когда использовать UniFFI?
Самый популярный сценарий — это быстрое написание UDL-интерфейса к существующим Rust-библиотекам (или использование библиотеки с уже написаным UDL) и интеграция ее в React Native.
React Native World | Навигация по каналу
