Create rust project and an ocaml directory.
cargo new rahst --lib
mkdir camls
Then replace everything in rahst/src/lib.rs with the following:
#[unsafe(no_mangle)]
pub extern "C" fn add(left: i32, right: i32) -> i32 {
left + right
}
Put the following snippet in camls/main.ml:
external add : int -> int -> int = "add"
let () =
let result = add 5 3 in
Printf.printf "And: %d\n" result
Build Rust first, then Ocaml:
cd rahst
cargo build
cd ../camls
ocamlopt -o rsml -ccopt -L../rahst/target/debug -ccopt -lrahst main.ml
./rsml