ppapi 0.1.2

Rust idiomatic bindings to parts of the Pepper API
Rusted Pepper
==========

Rust idiomatic bindings to the Pepper API. This API is experimental. Expect it
to change somewhat.

[Documentation](http://diamondlovesyou.github.io/rust-ppapi/doc/ppapi/index.html)

## Build

You'll need to build and install [the PNaCl/NaCl Rust fork](https://github.com/DiamondLovesYou/rust) first.
Then run:

```bash
export NACL_SDK_ROOT=path/to/pepper_39
```

Lastly, run:

```bash
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](https://github.com/DiamondLovesYou/rust-pnacl-hello-world):

```rust
#![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]https://github.com/google/pepper.js

Unsupported due to rust-ppapi's use of threads.