99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Parcel 與 Rust

2020-02-14 17:19 更新

Rust

支持擴展類型: rs

Rust是一個由 Mozilla 開發(fā)的系統(tǒng)級編程語言,在一些內(nèi)存和安全線程方面擁有近原生的性能。Rust 最近支持了編譯成 WebAssembly,而現(xiàn)在 Parcel 讓它超級簡單零配置地開始使用。

只需要像其他資源那樣導(dǎo)入.rs文件,假設(shè)你已經(jīng)安裝了Rustup,Parcel 會自動安裝正確的工具鏈(toolchain),目標文件(target),和其他的編譯時必備的依賴。在Cargo的幫助下,不但能直接拿到 Rust 源文件,而且可以自動追蹤文件依賴,在保存的時候會重新構(gòu)建。

如同.wasm文件,.rs文件可以被異步或同步導(dǎo)入。

// 同步導(dǎo)入
import { add } from './add.rs'
console.log(add(2, 3))
// 異步導(dǎo)入
const { add } = await import('./add.rs')
console.log(add(2, 3))

在 Rust 側(cè),你只需要確保函數(shù)名不是 mangled 而且函數(shù)是 public 的即可。

#[no_mangle]
pub fn add(a: i32, b: i32) -> i32 {
  return a + b
}

你也可以通過導(dǎo)入src/lib.rs或src/main.rs來導(dǎo)入rust項目。此時,Parcel會調(diào)用cargo而不是rustc進行編譯。

import { sub } from './sub/src/lib.rs'
console.log(sub(2, 3))

在./sub/Cargo.toml中:

[package]
...

[lib]
crate-type = ["cdylib"]

[dependencies]
wasm-bindgen = "0.2"

在./sub/src/lib.rs中:

use wasm_bindgen::prelude::*;

#[wasm_bindgen]
pub fn sub(a: i32, b: i32) -> i32 {
    a - b
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號