报名参加CloudWeGo黑客松,奖金直推双丰收! 了解详情
写点什么

如何在 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:007162
用户头像

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

关注

评论

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

谁是 AI 搜索先锋?阿里云携手 Elastic 正式启动先锋者招募!

阿里云大数据AI技术

elastic 阿里云 搜索 AI搜索

JimuReport 积木报表 v1.9.5发布,免费的可视化报表

JEECG低代码

报表 可视化数据 报表打印 数据报表

项目管理系统(源码+讲解+演示)

深圳亥时科技

“数字创新产品课程” 4月25-26日 · CSPO认证在线课程

ShineScrum

产品负责人 CSPO认证

AI口语练习APP的开发

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

软件外包公司 AI口语 AI口语练习APP

MySQL遇到AI:字节跳动开源 MySQL 虚拟索引 VIDEX

字节跳动开源

虚拟索引技术 解耦架构 可扩展接口 生产验证 多形态部署

“PO高阶精进课程” 5月10-11日 · A-CSPO认证【提前报名特惠】

ShineScrum

实战经验深度解析 | 博睿数据制造行业精选案例集发布!

博睿数据

数字藏品(NFT)项目的线上运营

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

软件外包公司 音乐NFT 体育NFT

技术管理者,首先应该学会预期管理

老张

团队管理 职场成长

智能制造:数字化转型的五大陷阱

积木链小链

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

BeeWorks Meet:为企业打造专属的私有化线上会议系统

BeeWorks

即时通讯 即时通讯IM 私有化部署 企业级应用 局域网视频软件

数字藏品(NFT)项目的上线流程

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

软件外包公司 音乐NFT 体育NFT

深度解析:通过 AIBrix 多节点部署 DeepSeek-R1 671B 模型

火山引擎开发者社区

Apache SeaTunnel 用户征稿计划启动!分享数据集成实践经验,赢社区荣誉!

Apache SeaTunnel

PB 级大数据新势力!Apache SeaTunnel 亮相 Cloudberry 杭州 Meetup(附报名)

Apache SeaTunnel

告别数据难题:淘宝商品评论API带来高效解决方案

tbapi

淘宝API 淘宝商品评论采集 淘宝商品评论API 天猫商品评论API

平安证券 NoETL 指标平台实践:统一数据口径,驱动高效经营分析与智能决策

Aloudata

数据仓库 数据分析 大模型 指标平台 万数皆可问

数字藏品NFT的智能合约开发

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

数字藏品 软件外包公司 音乐NFT 体育NFT

湖北文旅智能化财务共享中心正式上线,树立文旅行业数字化转型新标杆

用友智能财务

财务 会计

为什么大模型在 OCR 任务上表现不佳?

Baihai IDP

程序员 AI OCR LLMs Baihai IDP

AI时代的数据底座:火山引擎多模态数据湖的设计与实践

火山引擎开发者社区

AI口语练习APP的运营

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

软件外包公司 AI口语练习 AI英语学习

YashanDB出席胶东CIO十周年峰会 自研数据管理方案驱动智造升级

极客天地

等保测评取消打分《网络安全等级测评报告模版(2025版)》变更

黑龙江陆陆信息测评部

让企业沟通更顺畅,BeeWorks Meet局域网视频软件的五大优势

BeeWorks

音视频 即时通讯 IM 私有化部署 局域网视频软件

Web3可能是为AI Agents(代理)构建的

PowerVerse

AGI #Web3 AI Agents

MES系统助力漆包线工厂,轻松攻克生产管理难点

万界星空科技

数字化 mes 漆包线mes 漆包线 制造业工厂

“从PMO到VMO价值交付管理” — Agile VMO业务敏捷CVP认证 | 7月5-6日 · 北京线下面授周末班

ShineScrum

PMO 企业转型 VMO

dbops 助力 GreatSQL 单机架构安装部署

GreatSQL

Karmada Dashboard 首个版本发布!开启多云编排可视化新篇章

华为云原生团队

云计算 容器 云原生

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