2 dépôts
Annotating Rust functions and traits with export macros to expose them across FFI without a separate definition file.
Distinct from Rust User-Defined Functions: Distinct from Rust User-Defined Functions: focuses on FFI export macros, not SQL UDF execution.
Explore 2 awesome GitHub repositories matching development tools & productivity · FFI Export Macros. Refine with filters or upvote what's useful.
wasm-bindgen est un générateur de liaisons et une couche d'interopérabilité conçue pour mapper les types de données et les fonctions à travers la frontière entre WebAssembly et JavaScript. Il fonctionne comme une interface de fonction étrangère qui synthétise le code répétitif nécessaire pour permettre une communication bidirectionnelle entre Rust et le runtime du navigateur. Le projet génère du code de liaison et des wrappers qui automatisent la conversion de types complexes, permettant aux fonctions Rust d'être exportées en tant que modules JavaScript et aux API de navigateur d'être importées dans Rust. Il utilise des macros procédurales pour définir ces interfaces et synthétise les liaisons basées sur les définitions de type Rust. Le système gère la mémoire via le passage de pointeurs de mémoire linéaire et gère l'échange de ressources en utilisant des handles de mémoire gérés par JavaScript. Il repose sur une convention d'appel compatible avec l'ABI C pour passer des entiers et des flottants primitifs entre le module et l'hôte.
Uses procedural macros to annotate Rust functions and types for export to the JavaScript environment.
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 foreig
Annotates functions and traits with export macros to expose them across FFI without a separate definition file.