This repository provides libraries for generating a Foreign Function Interface (FFI) for Rust, and the consumer code for safely interacting with that FFI.
The main interface. This re-exports the other crates in this workspace and is the only thing that
consumers should need to depend on.
Directory: ffi_common/
Low-level FFI functionality, including error handling, safe string conversion, Option
and
collection types for primitives, and macros for managing Option
and collection types for custom
types.
Directory: ffi_core/
A procedural macro crate with macros for generating an FFI for structs, enums, impls, and fns.
Directory: ffi_derive/
Internal details, including syntax parsing, Rust code generation for ffi_derive
, and a consumer
module for generating consumer code (currently Swift only).
Directory: ffi_internals/