Data+AI时代,如何打造下一代数智平台? 了解详情
写点什么

如何在 Cloudflare Workers 上部署 Rust 生成的 WASM

  • 2019-04-09
  • 本文字数:914 字

    阅读完需:约 3 分钟

如何在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 "C" { fn alert(s: &str);}
#[wasm_bindgen]pub fn greet(name: &str) -> String{ &format!("Hello, {}!", 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


2019-04-09 08:007232
用户头像

发布了 124 篇内容, 共 47.8 次阅读, 收获喜欢 177 次。

关注

评论

发布
暂无评论
发现更多内容

《Operating System Concepts》阅读笔记:p794-p807

codists

操作系统

原生 APP 的性能测试

北京木奇移动技术有限公司

软件外包公司 APP外包公司 APP开发公司

告别提示词混乱!梦精灵提示词管理器让创作更高效​

龙正哲

Prompt prompt 工程 提示词管理

一文彻底搞懂Transformer:原理、应用与测试开发指南

测试人

人工智能

Aloudata Agent 36 问,深度解惑!

Aloudata

数据分析 大模型 指标平台 ChatBI 智能问数

Arthas memory(查看 JVM 内存信息)

刘大猫

JVM 监控 Arthas memory 查看JVM内存信息

中昊芯英作为“杭州 AI 18 罗汉”荣登《杭州 AI 卧龙图》

科技热闻

百度智能云推出千帆数据智能平台

科技热闻

MES:助力新材料行业实现无纸化与智能制造

万界星空科技

mes 新材料 新材料mes 新材料行业

软通动力2024年年报:软硬一体战略促营收新高,增幅超78%

财见

当AI代理遇上DeCloud会发生什么?

PowerVerse

AI 算力 web3 DePIN DeCloud

【前瞻技术布局】打破“沙漏“现象→提高生成式搜索/推荐的上限

京东科技开发者

从“被动应对”到“主动合规”——零信任架构下的等保 2.0 与密评密改双合规

权说安全

网络安全 密码 零信任

等保测评5个等级

黑龙江陆陆信息测评部

新闻速递|Altair 荣膺 2025 年度 Google Cloud 制造业商业应用合作伙伴大奖

Altair RapidMiner

深度学习 制造业 Google Cloud CAE physicsAI

程序员必备:使用Cursor+MCP 提高开发效率+避坑指南

博文视点Broadview

行稳、致远 | 技术驱动下的思考感悟

京东科技开发者

中科曙光AI竞争力领跑全国TOP100榜单

科技热闻

怎么彻底清除Mac的系统数据?MacBook释放存储空间一文通

阿拉灯神丁

存储空间 CleanMyMac 苹果电脑必备软件 系统清理软件 mac系统维护

原生App和H5 App的对比

北京木奇移动技术有限公司

软件外包公司 原生APP开发 APP外包公司

《Operating System Concepts》阅读笔记:p808-p820

codists

操作系统

原生App和H5 App的性能比较

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包

上门预约家政系统平台网站/app/小程序源码

网站,小程序,APP开发定制

敏捷开发框架下的低代码应用:交付效率与代码质量的协同优化路径

JeeLowCode低代码平台

低代码 低代码开发 低代码平台 低代码, 低代码引擎

AI与智能农业:如何通过精准农业提升作物产量与资源使用效率?

天津汇柏科技有限公司

人工智能

Web3项目的开发的性能测试

北京木奇移动技术有限公司

软件外包公司 APP外包公司 APP开发公司

什么是采购管理?如何做好采购管理?

积木链小链

数字化转型 数字化 智能制造

邀请函|2025 Altair区域技术交流会华北站,报名开启!

Altair RapidMiner

AI 电磁仿真 hyperworks 多物理场仿真 仿真数据管理

驭电·新境 长安马自达MAZDA EZ-60全球首秀

极客天地

天猫商品详情 API 接口:功能、调用与实战攻略

tbapi

天猫商品详情接口 天猫API 天猫数据采集 天猫商品详情api

设计模式-策略模式

京东科技开发者

如何在Cloudflare Workers上部署Rust生成的WASM_云原生_Sergio De Simone_InfoQ精选文章