قابلیت همکاری با 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 توصیه نمی‌شود.

در ادامه گزینه‌های بهتر را بررسی خواهیم کرد.