FFi 规范

Rust 可以通过C-ABI无缝与C语言打交道,也可以通过暴露 C-ABI 接口供其他语言调用。但是跨边界本质上是不安全的。

一般来说,FFi 是指在其他语言中调用 Rust 代码,Rust代码会按 C-ABI 来暴露接口。这类 Rust crate或模块,常以 -ffi后缀结尾。

另一类是 Rust 去调用 C-ABI 接口,相关代码通常被封装到以 -sys 为后缀命名的 crate 或 模块中。

本小节内容,包含以上两种情况。