#pepper #nacl #pnacl

nightly sys ppapi

Rust对Pepper API部分功能的惯用绑定

3 个版本

使用旧Rust 2015

0.1.2 2015年7月11日
0.1.1 2015年1月14日
0.1.0 2015年1月14日
0.0.1 2015年1月14日
0.0.0 2014年11月21日

#19#nacl

MPL-2.0 许可证

690KB
14K SLoC

Rusted Pepper

Rust对Pepper API的惯用绑定。此API是实验性的。预期它会有所变化。

文档

构建

首先需要构建和安装 PNaCl/NaCl Rust 分支。然后运行

export NACL_SDK_ROOT=path/to/pepper_39

最后,运行

cargo build --target le32-unknown-nacl

从中获利!

不要运行 build.sh 它用于更新FFI绑定。

入门

来自 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

由于rust-ppapi使用线程而不受支持。

依赖项

~6–8.5MB
~180K SLoC