Files
sarasacw-omrf/assets/c-friendly-ffi-design/index.md
T

22 lines
891 B
Markdown

# C-friendly FFI Design
This document is a guide for authoring Rust libraries that expose a C-friendly FFI
and distributing them as ordinary CMake/pkg-config packages. It covers how to design
C-friendly FFI signatures, how to pass primitive types, enums, strings and
Rust-specific constructs such as `Option` and `Result` across the boundary, and how
to write the accompanying C/C++ header files.
## Contents
* [Rust Side](rust-side.md)
- [FFI Function Signature](rust-side/func-signature.md)
- [Allowed Data Types](rust-side/data-types.md)
- [FFI Example](rust-side/example.md)
- [Miscellaneous Stuff](rust-side/misc.md)
* [C/C++ Side](c-cpp-side.md)
- [C Header](c-cpp-side/c-header.md)
- [C++ Header](c-cpp-side/cpp-header.md)
- [C/C++ Headers Example](c-cpp-side/example.md)
- [Miscellaneous Stuff](c-cpp-side/misc.md)
* [Pack Distribution](packer.md)