Upgrade to uniffi 25
- Updated to UniFFi 0.25.1
- Refactored the binding implementation to be more inline with the Kotlin/Android binding implementation of upstream, so that it will be easier to follow the future changes. This means that:
- The
kotlin-uniffi-base
directory is gone. - Everything is in templates
- There are only two root templates (for each target) invoked from Rust (
wrapper.kt
andTypes.kt
) as in the upstream Kotlin/Android binding. - We produce a unique
generated/{target}Main/{crate}/{crate}.{target}.kt
file per target (plus the C header for the Kotlin/Native part).
- The
- Implemented support for Rust futures and Kotlin suspend functions.
Note that this target currently target commit https://github.com/mozilla/uniffi-rs/tree/7cd3aac735e905e1725d350a7a82d57aa50caaa1 of the main branch, as I needed two fixes that were not in 0.25.1. I propose that we move to 0.25.2 when it will be out, and make a first release at that same time.
Edited by Didier Villevalois