1 unstable release
Uses old Rust 2015
0.0.1 | Jan 24, 2015 |
---|---|
0.0.0 |
|
#52 in #compiler-plugin
13KB
244 lines
Rusted Pepper
Rust idiomatic bindings to the Pepper API. This API is experimental. Expect it to change somewhat.
Build
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.
Getting Started
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() {
}
Pepper.js
Unsupported due to rust-ppapi's use of threads.
lib.rs
:
Provides the pnacl_test! {}
macro.
Usage:
#[ppapi_test]
fn test_name(instance: ppapi::Instance, args: HashMap<String, String>) {
// Put the test here.
}
In the future I plan allowing #[ppapi_test] on modules so callbacks can be tested as well.