日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

rust(36)-Rust and WebAssembly(3)

發(fā)布時間:2025/3/12 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 rust(36)-Rust and WebAssembly(3) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

線性內(nèi)存
WebAssembly有一個非常簡單的內(nèi)存模型。一個wasm模塊可以訪問單個“線性內(nèi)存”,它本質(zhì)上是一個平面字節(jié)數(shù)組。該內(nèi)存可以以頁面大小(64K)的倍數(shù)增長。它不能被縮小。
WebAssembly僅僅是為Web而設計的嗎?
盡管目前它在JavaScript和Web社區(qū)中受到了廣泛的關(guān)注,但wasm并沒有對其主機環(huán)境做任何假設。因此,我們有理由推測wasm將來會成為一種“可移植的可執(zhí)行文件”格式,在各種上下文中都可以使用。然而,到目前為止,wasm主要與JavaScript (JS)相關(guān),它有多種形式(包括Web和Node.js)。

(module(func $fac (param f64) (result f64)get_local 0f64.const 1f64.ltif (result f64)f64.const 1elseget_local 0get_local 0f64.const 1f64.subcall $facf64.mulend)(export "fac" (func $fac)))

Rust 和 WebAssembly 有兩大主要用例:

構(gòu)建完整應用 —— 整個 Web 應用都基于 Rust 開發(fā)!
構(gòu)建應用的組成部分 —— 在現(xiàn)存的 JavaScript 前端中使用 Rust。將使用 Rust 的 npm 包構(gòu)建工具 wasm-pack 來構(gòu)建一個 npm 包。這個包只包含 WebAssembly 和 JavaScript 代碼,以便包的用戶無需安裝 Rust 就能使用。他們甚至不需要知道這里包含 WebAssembly!
要構(gòu)建我們的包,我們需要一個額外工具 wasm-pack。它會幫助我們把我們的代碼編譯成 WebAssembly 并制造出正確的 npm 包。使用下面的命令可以下載并安裝它:

$cargo new --lib wasmlearn1 $ cargo install wasm-pack //lib.rs extern crate wasm_bindgen;use wasm_bindgen::prelude::*;#[wasm_bindgen] extern {pub fn alert(s: &str); }#[wasm_bindgen] pub fn greet(name: &str) {alert(&format!("Hello, {}!", name)); }

總結(jié)

以上是生活随笔為你收集整理的rust(36)-Rust and WebAssembly(3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。