UniFFI is a mature, production-grade multi-language FFI (Foreign Function Interface) bindings generator for Rust, originally developed by Mozilla and used extensively in Firefox mobile (Android and iOS) and desktop. The system parses Rust interfaces either via a WebIDL-like UDL (UniFFI Definition Language) file or through Rust proc-macros (`#[uniffi::export]`, `#[derive(uniffi::Enum)]`), then generates scaffolding Rust code and high-level bindings for Kotlin (both JNA and JNI backends), Swift, Python, and Ruby, with community support for Go, C#, Dart, and others. The architecture is a layered pipeline: first, metadata is extracted from Rust source or UDL files; second, a language-agnostic intermediate representation (IR) is built and transformed (renaming, type resolution, checksum computation); third, language-specific IR is derived and fed into template-based code generators that produce idiomatic foreign code. The system handles complex features including async functions (with Rust futures and foreign futures), callback interfaces (foreign-implemented traits), custom types, external crate types, recursive types, error types with rich variants, and object reference counting via handles. The codebase is organized as a Cargo workspace with over 60 crates, each with clear responsibilities: `uniffi_core` provides the FFI runtime (RustBuffer, ForeignBytes, FfiConverter, async schedulers), `uniffi_macros` handles proc-macro expansion, `uniffi_parse_rs` parses Rust source, `uniffi_udl` parses UDL files via a custom WebIDL parser (`weedle2`), `uniffi_bindgen` orchestrates code generation, and `uniffi_pipeline` provides a generic IR transformation framework.