قابلیت همکاری با C
Rust پشتیبانی کاملی برای link دادن object fileهایی با یک فراخوانی C دارد. به طور مشابه، می توانید توابع Rust را export کرده و آنها را از C فراخوانی کنید.
در صورت تمایل میتوانید این کار را دستی انجام دهید:
extern "C" { fn abs(x: i32) -> i32; } fn main() { let x = -42; // SAFETY: `abs` doesn't have any safety requirements. let abs_x = unsafe { abs(x) }; println!("{x}, {abs_x}"); }
ما قبلاً این را در تمرین Safe FFI Wrapper دیدیم.
این مستلزم آگاهی کامل از پلتفرم هدف است و برای production توصیه نمیشود.
در ادامه گزینههای بهتر را بررسی خواهیم کرد.