mozilla

    mozilla/uniffi-rs

    a multi-language bindings generator for rust

    backend
    ffi-layer
    rust-crate
    Rust
    MPL-2.0
    5.1K stars
    340 forks
    5.1K GitHub watchers
    Updated Oct 31, 2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Where it stands

    Rank, growth pace and release cadence relative to everything GStars tracks.

    The project lists 152 contributors on GitHub.

    Gained 14% fewer stars in the last 90 days than in the 90 days before.

    Use Cases & Benefits

    • Generates multi-language bindings to enable Rust code usage across different programming languages.
    • Simplifies cross-platform development by auto-generating language bindings from a single Rust codebase.
    • Use for integrating Rust business logic into mobile apps with Kotlin for Android and Swift for iOS.
    • Use for creating Python or Ruby extensions that leverage Rust's performance and safety features.
    • Use for building cross-platform shared libraries accessible from C#, Go, or other supported languages.

    Should you depend on it?

    License terms, project hygiene and risks, from GitHub metadata and GStars' snapshots.

    License

    Mozilla Public License 2.0

    Weak copyleft: changes to the licensed code itself must be shared when you distribute it, but code that merely uses it can stay under your own license.

    Community files

    • README: present
    • Contributing guide: present
    • Code of conduct: present

    Watch-outs

    • No GitHub releases; pin a commit or tag instead of a release.

    General guidance from repository metadata, not legal advice. How we score

    From the README

    UniFFI is a toolkit for building cross-platform software components in Rust.

    For the impatient, see the UniFFI user guide or the UniFFI examples.

    By writing your core business logic in Rust and describing its interface in an "object model", you can use UniFFI to help you:

    You can describe your object model in an interface definition file or by using proc-macros.

    UniFFI is currently used extensively by Mozilla in Firefox mobile and desktop browsers; written once in Rust, auto-generated bindings allow that functionality to be called from both Kotlin (for Android apps) and Swift (for iOS apps). It also has a growing community of users shipping various cool things to many users.

    UniFFI comes with support for Kotlin, Swift, Python and Ruby with 3rd party bindings available for C# and Golang. Additional foreign language bindings can be developed externally and we welcome contributions to list them here. See Third-party foreign language bindings.

    You can read more about using the tool in the UniFFI user guide.

    Excerpt from the mozilla/uniffi-rs README on GitHub (MPL-2.0 license). © its authors.Read the full README on GitHub

    Daily snapshots

    Stars gained per day, and how forks and open issues moved, from GStars' daily snapshots

    Forks

    340+18

    Open issues

    308+29

    Compared with peers in Backend

    Fastest-growing repositories GStars tracks in this cohort for the week of Nov 1, by 7-day star growth

    mozilla/uniffi-rs compared with Backend repositories by stars, 7-day star growth, health score and last release
    RepositoryStars+7dHealthLast release
    anthropics/skills187.8K+2.9K15—
    DuarteSantos8/openGym19.7K+2.4K602 days ago
    shiyu-coder/Kronos47.0K+2.3K16—
    NationalSecurityAgency/ghidra98.2K+2.3K6414 days ago
    microsoft/VibeVoice56.0K+1.1K29—
    mozilla/uniffi-rs5.1K—45—
    Category median56.0K+2.3K29—

    Also by mozilla

    Other repositories from this maintainer that GStars tracks

    Discover Repositories

    Search across tracked repositories by name or description