smix-ffi
UniFFI v0.29+ scaffolding crate for the smix cross-language SDK suite.
Each async endpoint exposes a sibling cancel_{op}(handle) for
cancellation (UniFFI does not internally support coroutine cancellation).
Build pipeline
# Workspace dev test (macOS host)
# iOS sim slice
# Android sim slice
# Swift bindings generation
# Kotlin bindings generation
# XCFramework packaging
Architecture
Wraps stone API (smix-selector + smix-selector-resolver + smix-screen)
into UDL-defined FFI surface. UniFFI generates:
- Rust scaffolding (C-ABI extern "C" fns + RustCallStatus + RustBuffer marshalling)
- Swift bindings (typed Swift API with
async throws+Sendable) - Kotlin bindings (typed Kotlin API with
suspend fun+ sealed class errors)
This FFI ships only to SDK consumers (XCUITest target / instrumentation test
target / Expo dev-client), NEVER linked into app binary. Release app
build has 0 smix-ffi bytes.
License
Apache-2.0 OR MIT (workspace inherited).