awesome-repositories.com
Blog
MCP
awesome-repositories.com

Découvrez les meilleurs dépôts open-source grâce à notre recherche par IA.

ExplorerRecherches sélectionnéesAlternatives open sourceLogiciels auto-hébergésBlogPlan du site
ProjetÀ proposNotre méthodologiePresseServeur MCP
Mentions légalesConfidentialitéConditions d'utilisation
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
mozilla avatar

mozilla/uniffi-rs

0
View on GitHub↗
4,326 stars·300 forks·Rust·mpl-2.0·6 vuesmozilla.github.io/uniffi-rs↗

Uniffi Rs

uniffi-rs is a Rust FFI binding generator and multi-language binding tool. It functions as an automated binding scaffolder that creates type-safe foreign function interfaces and native wrappers for Rust libraries in languages such as Swift, Kotlin, and Python.

The project provides a system for cross-language interface definition, allowing functions and data structures to be specified in a shared format to ensure consistent API signatures across platforms. It further serves as an FFI memory management layer, handling object lifetimes and thread safety when sharing state between Rust and foreign language runtimes.

The tool covers broad capability areas including API integration for mapping internal data structures to foreign classes and the automation of binding generation during the build process. It supports the development of multi-platform SDKs by managing the transfer of data, the mapping of errors to native exceptions, and the execution of asynchronous functions across language boundaries.

Features

  • FFI Export Macros - Annotates functions and traits with export macros to expose them across FFI without a separate definition file.
  • Binding Scaffolding Generators - Automates creation of boilerplate FFI code and native wrappers to expose Rust functions to foreign languages.
  • Rust Language Binding Generators - Generates type-safe FFI bindings from Rust code to Swift, Kotlin, and Python for cross-platform library use.
  • Multi-Platform SDK Development - Builds multi-platform SDKs by defining Rust interfaces once and producing native wrappers for iOS, Android, and desktop.
  • FFI Memory Management Bridges - Manages Rust object lifetimes and thread safety across the FFI boundary with reference counting.
  • Foreign Function Bindings - Produces type-safe native wrappers in Swift, Kotlin, Python, and Ruby that translate idiomatic calls into FFI invocations.
  • FFI Export Proc Macros - Exports Rust functions and types to FFI using derive and attribute macros that produce C-compatible entry points.
  • Interface Definition Languages - Defines cross-language APIs in a shared UDL file for consistent type signatures across targets.
  • Unified Definition Language Files - Declares functions and types in a UDL file to expose them to foreign-language bindings.
  • FFI Enum Exposures - Derives enum traits to make variants and associated data available across FFI.
  • Cross-Language Data Records - Derives record traits on structs to make fields accessible as cross-language data types.
  • Kotlin Binding Generators - Creates type-safe Kotlin bindings from Rust interface definitions for Android and JVM use.
  • Swift Binding Generators - Creates type-safe Swift bindings from Rust interface definitions for iOS and macOS use.
  • Rust Mobile Library Integrations - Integrates Rust libraries into iOS and Android apps with automatic memory management and thread safety.
  • FFI Thread-Safety Enforcement - Handles object lifetimes and thread safety when sharing Rust state with foreign language runtimes.
  • Error-to-Exception Mappings - Maps Rust errors to native exceptions and executes async functions from foreign language runtimes.
  • Rust-C++ Async Bridges - Bridges Rust async functions to foreign language concurrency primitives like coroutines or callbacks.
  • Pluggable Codegen Architectures - Provides a pluggable codegen architecture that supports custom binding generators for additional languages.
  • Cross-Language Callbacks - Exports traits so foreign code can pass callback implementations into Rust functions.
  • FFI Object Exposures - Derives object traits on structs to expose them across FFI with mixed proc-macro and definition methods.
  • Custom FFI Type Mappings - Maps Rust types to FFI-compatible representations for automatic cross-language conversion.
  • Rust-to-Python Binding Generators - Creates type-safe Python bindings from Rust interface definitions for cross-platform scripting.
  • Cross-Language Error Enums - Derives error enums that become native exceptions in foreign code across the FFI boundary.
  • Result-to-Exception Adapters - Converts Rust Result types and error enums into native exceptions in each foreign language.

Historique des stars

Graphique de l'historique des stars pour mozilla/uniffi-rsGraphique de l'historique des stars pour mozilla/uniffi-rs

Recherche par IA

Explorez plus de dépôts awesome

Décrivez vos besoins en langage naturel — l'IA classe des milliers de projets open source sélectionnés par pertinence.

Start searching with AI

Questions fréquentes

Que fait mozilla/uniffi-rs ?

uniffi-rs is a Rust FFI binding generator and multi-language binding tool. It functions as an automated binding scaffolder that creates type-safe foreign function interfaces and native wrappers for Rust libraries in languages such as Swift, Kotlin, and Python.

Quelles sont les fonctionnalités principales de mozilla/uniffi-rs ?

Les fonctionnalités principales de mozilla/uniffi-rs sont : FFI Export Macros, Binding Scaffolding Generators, Rust Language Binding Generators, Multi-Platform SDK Development, FFI Memory Management Bridges, Foreign Function Bindings, FFI Export Proc Macros, Interface Definition Languages.

Quelles sont les alternatives open-source à mozilla/uniffi-rs ?

Les alternatives open-source à mozilla/uniffi-rs incluent : rustwasm/wasm-bindgen — wasm-bindgen is a bindings generator and interop layer designed to map data types and functions across the boundary… dtolnay/cxx — CXX is a code generator that produces a safe, zero-overhead FFI bridge between Rust and C++. It lets functions and… alipay/fury — Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to… grpc/grpc — gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between… dop251/goja — Goja is a JavaScript engine and ECMAScript compliant interpreter implemented entirely in Go. It serves as an embedded… apache/thrift — Thrift is a cross-language remote procedure call framework and data serialization protocol. It provides an interface…

Alternatives open source à Uniffi Rs

Projets open source similaires, classés selon le nombre de fonctionnalités partagées avec Uniffi Rs.
  • rustwasm/wasm-bindgenAvatar de rustwasm

    rustwasm/wasm-bindgen

    9,057Voir sur GitHub↗

    wasm-bindgen is a bindings generator and interop layer designed to map data types and functions across the boundary between WebAssembly and JavaScript. It functions as a foreign function interface that synthesizes the necessary boilerplate to enable bidirectional communication between Rust and the browser runtime. The project generates glue code and wrappers that automate the conversion of complex types, allowing Rust functions to be exported as JavaScript modules and browser APIs to be imported into Rust. It uses procedural macros to define these interfaces and synthesizes bindings based on

    Rust
    Voir sur GitHub↗9,057
  • dtolnay/cxxAvatar de dtolnay

    dtolnay/cxx

    6,664Voir sur GitHub↗

    CXX is a code generator that produces a safe, zero-overhead FFI bridge between Rust and C++. It lets functions and data types from either language be used directly in the other, with static type safety enforced at compile time and no copying, serialization, or runtime checks across the boundary. The bridge supports the full range of cross-language interactions: Rust can call C++ functions and use C++ types, and C++ can call Rust functions and use Rust types. Standard library types like strings, vectors, and smart pointers are mapped automatically between the two languages, while opaque types

    Rust
    Voir sur GitHub↗6,664
  • alipay/furyAvatar de alipay

    alipay/fury

    4,412Voir sur GitHub↗

    Fury is a multi-language binary serialization framework designed for encoding domain objects and complex graphs to facilitate cross-language data exchange. It includes an interface definition language compiler that translates schema definitions into idiomatic native types and serialization boilerplate across multiple languages. The project distinguishes itself through a zero-copy binary reader that allows specific fields to be accessed without deserializing the entire object, as well as an object graph serializer that preserves circular references and referential integrity. It also features a

    Java
    Voir sur GitHub↗4,412
  • grpc/grpcAvatar de grpc

    grpc/grpc

    44,891Voir sur GitHub↗

    gRPC is a language-agnostic remote procedure call framework designed for high-performance communication between distributed services. It utilizes a structured interface definition language to generate consistent client stubs and server skeletons, enabling applications to invoke methods on remote servers as if they were local objects. By leveraging the HTTP/2 transport layer, the framework supports efficient binary serialization and multiplexed data exchange across diverse programming environments. The framework distinguishes itself through its support for flexible communication patterns, incl

    C++
    Voir sur GitHub↗44,891
  • Voir les 27 alternatives à Uniffi Rs→