2个版本

0.1.1 2021年6月12日
0.1.0 2020年8月27日

#713 in WebAssembly

MIT/Apache

1MB
32K SLoC

p5-rs

Rust / WebAssembly的p5.js绑定

要开始,请参阅p5-rs-starter


lib.rs:

p5-sys crate(库)是Rust/Wasm对的绑定。

*** 需要Nightly rustc ***

目前,几乎所有全局函数都正常工作。实例方法和属性尚未实现。例如,vector.add() 将不会工作。建议您使用Rust类型来完成此类任务。此外,接受数组并修改它们的函数也不会工作。

文档是从p5.js参考中获取的,尚未移植到Rust。

示例

use p5::*;

pub struct State {
    x: f64,
}

#[wasm_bindgen]
pub fn setup() -> State {
    createCanvas(400., 400., RENDERER::Webgl);
    background(123., 234., 124.);
    return State {
        x: 10.,
    }
}

#[wasm_bindgen]
pub fn draw(state: &mut State) {
    state.x += 1;
    rect(state.x, 40., 100., 120.);
}

Rust中没有可变的全局变量,因此我们必须使用状态。setup创建状态。draw和其他事件处理程序接收对该状态的可变引用,这意味着它们可以修改它。

依赖关系

~0.9–1.6MB
~30K SLoC