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

23 lines
948 B
Markdown
Raw Normal View History

# 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
2026-08-11 22:47:50 +08:00
* [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)
2026-08-13 21:40:16 +08:00
- [C/C++ Headers Docstring](c-cpp-side/docstring.md)
2026-08-11 22:47:50 +08:00
- [C/C++ Headers Example](c-cpp-side/example.md)
- [Miscellaneous Stuff](c-cpp-side/misc.md)
* [Pack Distribution](packer.md)