写点什么

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

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

关注

评论

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

加密货币在去中心化云算力生态中扮演什么角色?

PowerVerse

加密货币 Token 去中心化云算力

CAD图纸在天正中显示不全怎么办

极客天地

四川气象数据智能体示范应用入围中国信通院“开源大模型+”典型案例

ModelWhale

人工智能 大数据 大模型 中国信通院

SpecterInsight 4 - 基于 .NET 的跨平台后渗透指挥与控制 (C2) 框架

sysin

渗透

Studio 3T 2025.7 发布 - MongoDB 的终极 GUI、IDE 和 客户端

sysin

mongodb

豆瓣均分8.5+,想提升效能水平的技术领导都在读(部分可下载!)

思码逸研发效能

团队管理 个人成长 读书 研发效能 思码逸

如何灵活处理参数值?Apipost自定义函数功能让调试更简单高效!

数据追梦人

Java程序使用预处理语句的性能提升

秃头小帅oi

CAD命令行拖出来以后如何还原

极客天地

PWA与小程序:技术架构、生态对比及全球化部署策略分析

xuyinyin

如何显示CAD图纸详细信息

极客天地

Tailwind CSS一些你需要记住的原子类

电子尖叫食人鱼

CSS 前端

龙蜥专家走进中国农业大学 分享如何驱动生命科学高效计算

OpenAnolis小助手

操作系统 龙蜥社区 浪潮信息 龙蜥高校行

防火墙事件日志及日志分析

运维有小邓

日志管理工具 IT运维服务

SANnav Management Portal 2.2.1 for ESXi - SAN 可视化管理软件

sysin

SANnav

VMware Cloud Director Availability 4.7.1 - 灾难恢复和迁移 (DRaaS 解决方案)

sysin

vmware

开发者必备的这些API协议,Apipost都支持!

数据追梦人

YashanDB|使用 select * 创建物化视图无法触发查询重写?问题出在这儿!

数据库砖家

数据库·

阿里云 AI 搜索开放平台新功能发布:新增GTE自部署模型

阿里云大数据AI技术

大模型 AI搜索 GTE

阿里云 AI 搜索开放平台:RAG智能化工作流助力 AI 搜索

阿里云大数据AI技术

人工智能 阿里云 rag AI搜索 QwQ

用 AI 革新软件测试

俞凡

人工智能 软件测试

VMware Cloud Director Availability 4.7 - 灾难恢复和迁移 (DRaaS 解决方案)

sysin

vmware

瞧瞧别人家的日期处理,那叫一个优雅!

不在线第一只蜗牛

Java

Python 实战:用 API 接口批量抓取小红书笔记评论,解锁数据采集新姿势

tbapi

小红书笔记接口 小红书API 小红书笔记评论采集 小红书笔记内容采集

CST表面等离极化激元SPP --- IMI有效折射率,截断边界模, 缝隙波导

思茂信息

cst电磁仿真 CST软件 CST Studio Suite

日志易×DeepSeek:重新定义智能日志分析的「智」能边界

日志易

#日志易 #DeepSeek #智能日志中心

企业im有哪些? 哪款更适合你的即时通讯需求?

BeeWorks

即时通讯 IM 私有化部署 企业级应用

Acunetix v25.4 - Web 应用程序安全测试

sysin

Acunetix

金仓数据库 2025 征文大赛火热启动!丰富豪礼 + 技术曝光,等你来战!

金仓技术

征文活动 金仓数据库

域名状态异常是怎么回事?怎么解决?(国科云)

防火墙后吃泡面

企业内部用IM软件:安全高效的企业内部沟通工具

BeeWorks

即时通讯 IM 私有化部署 企业级应用

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