
Introduction
safer_ffiis a rust framework to generate a foreign function interface (or FFI) easily and safely.
This framework is primarily used to annotate rust functions and types to
generate C headers without polluting your rust code with
unsafe.
It's inspired by #[wasm_bindgen]. It's mainly expose Rust to C
over the FFI (allowing C code calling into Rust code). However, it does have some
usages for C to Rust over the FFI (callbacks or extern { ... }
headers).
This chart shows the comparison of traditional FFI types vs ones using safer_ffi.
| Traditional FFI | safer_ffi | |
|---|---|---|
| Mutable pointer or NULL | *mut T | Option<&mut T> |
| Mutable pointer | *mut T | &mut T |
| Owned pointer or NULL | *mut T | Option<repr_c::Box<T>> |
| Owned pointer | *mut T | repr_c::Box<T> |
Rust documentation
Link to the rustdoc-generated API documentation .
Prerequisites
- Minimum Supported Rust Version:
1.60.0
Getting started
See the next chapter or the chapter on Detailed Usage.
Warning: safer_ffi is still in an alpha stage.
Some features may be missing, while others may be changed when further improving it.