如何在Cloudflare Workers上部署Rust生成的WASM
Cloudflare最近開源了Wrangler。這是一組CLI工具,用於構建、預覽和釋出Cloudfare Workers,這些Workers用Rust語言編寫並編譯到WebAssembly。
Wrangler的目標是為開發人員提供端到端的體驗,使他們能夠在Rust中編寫自己的無伺服器功能,並在將其轉換為WebAssembly後,在Cloudflare Workers上部署和執行這些功能。WebAssembly編譯步驟隱藏在Wrangler CLI後面。
要嘗試使用Wrangler,可以使用cargo執行cargo install Wrangler安裝它。Wrangler生成的工程的一般結構包括一個儲存Rust程式碼的src目錄,一個包含一個worker.js的Worker目錄(可以從中提取Rust生成的程式碼)和幾個後設資料檔案。Wrangler有三個主要命令:build(構建)、preview(預覽)和publish(釋出)。build命令將所有Rust程式碼編譯到WebAssembly,而preview命令將允許你在Cloudflare基礎設施上執行函式。不過,目前還不能在本地預覽函式,但至少在Cloudflare基礎設施上預覽函式不需要Cloudflare賬戶。
你可以像往常一樣編寫Rust程式碼:你可以在你的Cargo.toml檔案中引入任何指定它的外部依賴項。使用wasm_bindgen通過啟用字串、物件、類等來改進wasm和JS之間的通訊。例如,你可以寫這樣一個簡單的Rust檔案:
use wasm_bindgen::prelude::*;extern \u0026quot;C\u0026quot; { fn alert(s: \u0026amp;str);}#[wasm_bindgen]pub fn greet(name: \u0026amp;str) -\u0026gt; String{ \u0026amp;format!(\u0026quot;Hello, {}!\u0026quot;, name);}
該程式碼可以使用以下語法匯入並在worker.js檔案中執行:
const { greet } = wasm_bindgen;await wasm_bindgen(wasm)const output = greet('Worker')
Cloudflare計劃向Wrangler新增更多的命令,包括對linting、測試、基準測試和大小分析的支援。
Cloudflare Workers是用JavaScript編寫的無伺服器函式,可以在分佈世界各地的Cloudflare邊緣節點執行。Cloudflare表示,由於它們的邊緣節點與終端使用者非常接近,Workers可以通過減少網路延遲來提高效能。Cloudflare Workers使用V8 JavaScript引擎執行程式碼,但他們不使用Node.js,而是依靠他們自己實現的一些API來提高效率和安全性。
檢視英文原文連結:Deploying Rust-Generated WASM on Cloudflare Serverless Workers
相關文章
- 基於cloudflare workers自建docker映象CloudDocker
- CloudFlare Workers 日誌管理方案全解析Cloud
- rust wasm sycamore demoRustASM
- 深入web workers (上)Web
- 將 Rust 程式碼編譯為 WASMRust編譯ASM
- 使用cloudflare的免費workers建立一個esp32cam監控的方案研究Cloud
- Mubelotix/wasm-extension-template:一個易於使用的Rust Web模板ASMRustWeb
- Cloudflare更智慧的分層快取拓撲生成Cloud快取
- 純前端生成Excel檔案騷操作——WebAssembly & web workers前端ExcelWeb
- 使用 Cursor 和 Devbox 快速開發基於 Rust 的 WASM 智慧合約devRustASM
- 在kubernetes上執行WASM負載ASM負載
- 如何在 NET 程式萬種死法中有效的生成 Dump (上)
- Serverless部署應用並使用Cloudflare加速和支援HTTPSServerCloudHTTP
- k8s~envoy上新增wasm外掛K8SASM
- acme+cloudflare生成免費證書(自動續期)ACMCloud
- Rust 註釋生成文件Rust
- 在 R2 上儲存您的 Cloudflare 日誌Cloud
- 快速教程|如何在 AWS EC2上使用 Walrus 部署 GitLabGitlab
- cloudflare認識1(上傳檔案到桶)Cloud
- Cesium之Web WorkersWeb
- Rust在瀏覽器Wasm和後端伺服器中執行效能比較Rust瀏覽器ASM後端伺服器
- [譯] Service workers:PWA背後的英雄
- 什麼是 Web Workers?Web
- go~wasm外掛的開發GoASM
- WebAssembly Studio:Mozilla提供的WASM工具WebASM
- 如何在 Kubernetes 裡部署 JMX ExporterExport
- mingw 編譯生成的dll 如何在vs中使用編譯
- 精讀《談談 Web Workers》Web
- 如何在 Markdown 中生成目錄樹?
- Kettle 在 linux 上的部署Linux
- 如何在 Deno 應用程式中呼叫 Rust 函式Rust函式
- [譯] Hello, wasm-pack!ASM
- vuejs、react如何在伺服器部署?VueJSReact伺服器
- 如何在Linux下部署Samba服務?LinuxSamba
- [Hacker News 週報] 自部署 PaaS coolify;現代化終端 Warp;Ruby 增加 WASM 支援ASM
- # uwsgi 的 processes , threads , workers 三者的關係thread
- [譯] 或許你並不需要 Rust 和 WASM 來提升 JS 的執行效率 — 第二部分RustASMJS
- connect your tunnel to CloudflareCloud