Rust idiomatic bindings to the Pepper API. This API is experimental. Expect it to change somewhat.
You'll need to build and install the PNaCl/NaCl Rust fork first. Then run:
export NACL_SDK_ROOT=path/to/pepper_39
Lastly, run:
cargo build --target le32-unknown-nacl
And profit!
Don't run build.sh
. It is used to update FFI bindings.
Taken from pnacl-hello-world:
#![crate_name = "pnacl-hello-world"]
#![crate_type = "bin"]
#![no_main]
extern crate ppapi;
use std::collections::HashMap;
#[no_mangle]
#[cfg(target_os = "nacl")]
// Called when an instance is created.
// This is called from a new task. It is perfectly "safe" to panic!() here, or in
// any callback (though it will result in instance termination).
pub extern fn ppapi_instance_created(_instance: ppapi::Instance,
_args: HashMap<String, String>) {
println!("Hello, world!");
}
#[no_mangle]
pub extern fn ppapi_instance_destroyed() {
}
Unsupported due to rust-ppapi's use of threads.