← ClaudeAtlas

uniffi-packaging-versioninglisted

Use when you package a Rust UniFFI core as native artifacts for mobile consumers - per-ABI Android cdylib .so files, an iOS XCFramework assembled from staticlib slices, and generated Kotlin and Swift bindings - or when you version the FFI surface - pin the uniffi runtime against uniffi-bindgen, classify an exported API change as additive or breaking, keep checked-in bindings in step with the library, or debug a load-time checksum mismatch, a RustBuffer deserialization panic, or a missing native library.
po4yka/rust-skills · ★ 2 · AI & Automation · score 76
Install: claude install-skill po4yka/rust-skills
# UniFFI Packaging and Versioning This skill covers two jobs that must stay in step: 1. **Packaging.** Turn one Rust FFI crate into distributable native artifacts - a `cdylib` `.so` per Android ABI, and a `staticlib`-based XCFramework for Apple platforms. 2. **Versioning.** Keep the generated binding surface and the compiled library at the same revision, so a bindings/library mismatch never reaches users. Related skills: `uniffi-boundary` owns the exported API surface, type mapping, and error taxonomy. `ffi-error-progress-cancel` owns callbacks, progress, and cancellation across the boundary. `cargo-workflows` owns profiles, the toolchain pin, and cross-compilation targets. `rust-android-build` and `rust-jni` cover the wider Android native build. Use this skill for the artifact contract and the compatibility rules between them. --- ## When to use this skill - You add, rename, or remove any `#[uniffi::export]` function, record, enum, or error variant. - You ship a new version of the Rust core to an Android or iOS consumer. - You investigate a `RustBuffer` deserialization panic, a "wrong number of fields" error, or a checksum error at library load after a native update. - You set up a fresh developer machine or CI runner to build native artifacts. - You must decide whether an FFI change is source-compatible, binary-compatible, or a breaking bump. --- ## The artifact contract | Consumer | Rust crate type | Artifact | Generated glue | |----------|---------