この記事は Rust Advent Calendar 2015 10日目の記事です。 Rustは共有ライブラリを生成してCのプログラムとリンクすることが可能らしいので、Rubyからrequireしてちゃんと動くnative extensionをRustだけを使って書いてみる。 既に似たようなことをやっている例はあるんだけど、Cファイルを用意してそこからRustを呼び出す形になっているので、今回はCを書かずにやってみたいと思う。ちなみに実用性は特に無いのであしからず。 Dylib Rustで共有ライブラリを作成してCから呼び出すには、以下のようにすればよい。 #![crate_type = "dylib"] #[no_mangle] pub extern fn rust_test(s: i32) { println!("rust_test {0}", s); }