写点什么

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

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

关注

评论

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

仓颉开发语言入门教程:搭建开发环境

幽蓝计划

CST如何查看阵列天线的副相一致性

思茂信息

cst CST软件 CST Studio Suite

AI赋能零售智能配置:精准匹配产品、场景与时机

第七在线

Ascend的aclgraph(六)AclConcreteGraph

zjun

PyTorch Ascend aclgraph

用 CodeBuddy 打造一张属于她的 520 刮刮乐,程序员的浪漫可以这么强大!

不惑

CodeBuddy首席试玩官

【HarmonyOS 开发】虚拟机无法访问本地服务 Couldn‘t connect to server

Geek_4a16a4

鸿蒙 开发工具 HarmonyOS HarmonyOS NEXT 实践分享

什么是网站IPv6支持度?怎么检测?

防火墙后吃泡面

Web3 App开发的技术方案

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

区块链技术 软件外包公司 web3开发

小红书APP的全新鸿蒙NEXT端性能优化技术实践

JackJiang

网络编程 即时通讯 IM

工业全坚固三防笔记本电脑——FZ-40

极客天地

用 CodeBuddy Craft 感受真正的 Vibe Coding

不惑

CodeBuddy首席试玩官

Ascend的aclgraph(五)PrimTorch & TorchInductor

zjun

PyTorch Ascend aclgraph

Ascend的aclgraph(九)e2e执行aclgraph

zjun

PyTorch Ascend aclgraph

对话阿里云通义灵码技术负责人陈鑫:AI编程的现状与未来

阿里巴巴云原生

通义灵码

从零实现模块级代码影响面分析方案|得物技术

得物技术

模块 代码影响范围

Ascend的aclgraph(七)AclConcreteGraph:capture_begin

zjun

PyTorch Ascend aclgraph

2025 DataOps发展大会:数造科技再获殊荣,引领数据要素高质量供给

数造万象

人工智能 AI 数据 高质量 Data + AI

HyperWorks基础培训教程:批处理网格划分

智造软件

Hypermesh hyperworks CAE仿真

区块链 Web3 项目的技术架构

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

区块链技术 软件外包公司 web3开发

懒懒笔记 | 课代表带你梳理【RAG 课程 6&7:评测、召回优化与多路检索】

商汤万象开发者

AI LLM rag

AI技术在英语学习中的应用

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

AI教育 软件外包公司 AI英语学习

Ascend的aclgraph(四)AOT Autograd

zjun

PyTorch Ascend aclgraph

雅菲奥朗带您一篇知晓 A2A(Agent2Agent)& A2A vs MCP

雅菲奥朗

A2A Agent2Agent Protocol

西藏具有资质等保测评机构汇总2025

行云管家

网络安全 等保 等保测评

对话阿里云通义灵码技术负责人陈鑫:AI编程的现状与未来

阿里云云效

设备维修,掌握“一巡、二看、三动手”,轻松解决设备故障

积木链小链

数字化 设备管理 生产管理 设备维修

通过利益相关者管理提升财务规划的发展可持续性

智达方通

企业管理 财务管理 财务规划

Ascend的aclgraph(八)AclConcreteGraph:capture_end

zjun

PyTorch Ascend aclgraph

Ascend的aclgraph(十)另外一种成图方式GeConcreteGraph

zjun

PyTorch Ascend aclgraph

区块链Web3系统的开发

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

区块链技术 软件外包公司 web3开发

StarRocks+Paimon落地阿里日志采集:万亿级实时数据秒级查询

阿里云大数据AI技术

人工智能 数据分析 StarRocks paimon #大数据

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