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.
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.
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…
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
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
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
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