# mozilla/uniffi-rs

a multi-language bindings generator for rust

Repository: https://github.com/mozilla/uniffi-rs
Canonical: https://ross.abutalabs.com/products/uniffi-rs
Homepage: https://mozilla.github.io/uniffi-rs/
Language: Rust
License: MPL-2.0
License Family: copyleft
Topics: ffi-layer, rust-crate
Last push: 2026-08-25T10:52:19+00:00

## Health v2 (maintenance only)
Score: 77/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 99, release rhythm 35, longevity 100
- inputs: {"age_days": 2275, "days_push": 8, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4896, forks 325 (observed 2026-08-28T04:09:02.055509+00:00)

## What it is
UniFFI is a Rust toolkit that generates foreign-language bindings for Rust code, letting you write core logic once and call it from Kotlin, Swift, Python, Ruby, and more. Interfaces are described via UDL files or proc-macros, and the Rust code is compiled into a shared library for each target platform.

## Use cases
- generate Kotlin bindings for a Rust library for Android apps
- expose Rust code to Swift for iOS development
- call Rust code from Python
- share business logic across mobile platforms written once in Rust
- create multi-language bindings for a Rust crate
- build cross-platform components with a Rust core

## When to choose
- you have Rust business logic that must be reused across Android, iOS, and other targets
- you want auto-generated, maintained bindings instead of hand-written FFI code
- you prefer describing interfaces with proc-macros or UDL files

## When to avoid
- you need C or C++ interop specifically (consider Diplomat or Interoptopus)
- you need a fully stable 1.0 API guarantee, as advanced features may break between upgrades
- your project is single-language and never crosses the FFI boundary

## Facets
- artifact type: library
- maturity: active
- function: sdk, compiler, developer-tools
- domain: developer-tools, cross-platform, programming-languages
- platform: rust, jvm, python, ruby, cross-platform
- tags: ffi, bindings-generator, foreign-function-interface, proc-macros, udl, interop, swift, mobile

## Member repositories
- mozilla/uniffi-rs (main) score 77

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:02.055509+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:18:10.223578+00:00, confidence not recorded.
  - readme: https://github.com/mozilla/uniffi-rs (fetched 2026-08-28T04:09:02.055509+00:00, sha 52fe6cf59cd5)
  - homepage: https://mozilla.github.io/uniffi-rs/ (fetched 2026-08-29T09:00:20.160960+00:00, sha 9bc34e75df17)
- Data as of 2026-08-30T08:39:29.467469+00:00.
