1 个不稳定版本
使用旧的 Rust 2015
0.3.0 | 2018 年 1 月 19 日 |
---|
#44 in #suite
2KB
rust-wasm
Rust 和 JavaScript 工具集,用于编写 WebAssembly 模块。
- 编写具有近似自动字符串处理和内存管理的函数
- 如果您想避免不必要的分配,则具有人体工程学内存管理 API
- 无需额外的构建时工具——使用 Cargo 和您的 JavaScript 打包器
注意: 这处于早期阶段,目前预计 API 会频繁更改。
lib.rs
extern crate rust_wasm_prelude;
use rust_wasm_prelude::*;
pub use rust_wasm_prelude::exports::*;
#[no_mangle]
pub fn to_uppercase(ptr: JsString) -> JsString {
let mut s: String = js_string_input(ptr);
s = s.to_uppercase();
js_string_output(s)
}
index.js
import { Prelude, types } from '@rust-wasm/prelude'
import loadWasm from './lib.rs'
const prelude = new Prelude()
loadWasm()
.then(module => module.instance.exports)
.then(exports => {
prelude.withExports(exports)
const toUppercase = prelude.wrap(
types.string,
types.string,
exports.to_uppercase
)
console.log('uppercase of `test` is', toUppercase('test'))
})
安装
将 Rust 依赖项添加到您的 Cargo.toml
rust-wasm-prelude = "0.3.0"
rust-wasm-utils = "0.3.0"
使用 yarn/npm 安装 JavaScript 依赖项
yarn add @rust-wasm/prelude @rust-wasm/utils
示例
鸣谢
- HelloRust 展示了字符串传递函数如何由 JavaScript 和 Rust 使用
依赖关系
~0–1.4MB
~31K SLoC