第56章へようこそ。
今日のテーマは「FFI境界」です。
第52章から前章までで、unsafeが解禁する操作を見てきました。
生ポインタのデリファレンス、UnsafeCell、transmute。
どれもunsafeだったが、扱っていたのはRustの中の値だった。
生ポインタが指すのもRustが確保したメモリ、transmuteが読み替えるのもRustの型のビット列。
規則の外側とはいえ、まだRustの世界の中にあった。
今日からは、その外に出ます。
境界の向こうに、別の言語で書かれた関数がある。
Rustから、その関数を呼ぶ。
あるいはRustの関数を、別の言語から呼ばせる。
今日扱うのは、この言語をまたぐ境界が何と呼ばれるか、なぜ別の言語の関数を呼べて、その呼び出しがなぜunsafeになるのか、境界の向こうにRustの保証が届かないこと、そして両方向の境界を安全な抽象で包むこと、です。
感想
まだ感想はありません。最初の1件を書きましょう!
スクロール