All checks were successful
ci / test (pull_request) Successful in 3m22s
Adds the Android product alongside the existing Linux TUI, in one repo. SDK — crates/onionwire-sdk is a UniFFI facade over the very same `onionwire` crate the TUI runs on. Identity, invite, friend upsert, send/receive, rotate and wipe all delegate; no protocol is reimplemented, so an Android peer and a Linux peer interoperate. It is its own Cargo workspace because Arti's TLS backends are non-additive: the TUI keeps native-tls (OpenSSL), Android needs rustls + static-sqlite (no OpenSSL, no system libsqlite3 in the NDK). android/ — Gradle project. :sdk produces the AAR (Kotlin bindings generated at build time + libonionwire_sdk.so via cargo-ndk), :app is a Kotlin/Compose/M3 messenger depending on :sdk only. minSdk 26, targetSdk/compileSdk 36, INTERNET-only, data in filesDir, backups excluded. Root Cargo.toml grows `native-tls` (default) and `rustls` features so exactly one Arti TLS backend is selected per build graph. The default build is unchanged: same backend, ratatui still a normal dependency, src/tui.rs untouched. Also: Store::self_fingerprint/set_petname + Node wrappers (additive only), scripts/build-android-local.sh, README sections, .gitignore for local SDK paths.
9 lines
381 B
TOML
9 lines
381 B
TOML
# UniFFI Kotlin bindings configuration.
|
|
#
|
|
# `disable_java_cleaner`: the JVM cleaner path pulls in androidx.annotation and
|
|
# branches on API 34. JNA's own Cleaner works on every API level we support, so
|
|
# we take the single code path and drop the extra dependency.
|
|
[bindings.kotlin]
|
|
package_name = "uniffi.onionwire_sdk"
|
|
disable_java_cleaner = true
|
|
kotlin_target_version = "2.2.21"
|