写点什么

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

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

关注

评论

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

php解决time()时间戳超过2038年出错问题的解决方案

百度搜索:蓝易云

软件测试岗位的经典面试题

老张

软件测试 面试题 职场成长 面试求职

生成式AI已融入你的生活和工作了吗?

天津汇柏科技有限公司

人工智能 生成式AI 生成式 AI 应用

离奇问题,网络故障恢复后,无法重连到数据库?

中原银行

Java TCP 容器云 HikariCP 网络故障

哈银消费金融:深耕消保与风控 稳健展现发展潜力

Geek_2d6073

热仿真 散热仿真分析公司-CAE软件服务代做外包

Geek_2d6073

中国电信公布2024年中期业绩!

天翼云开发者社区

云计算 中国电信

SDN网络技术在云计算中的应用

天翼云开发者社区

SDN网络

《 黑神话 · 悟空》视觉震撼背后的技术力量:如何用云桌面加速 CG 视觉创作 !

Finovy Cloud

游戏开发 游戏 黑神话悟空 黑神话

MobPush扩展业务功能设置

MobTech袤博科技

开发者 产品动态

RPA实施的四大阶段:一步步的详细指南

八爪鱼采集器︱RPA机器人

RPA 自动化 机器人 RPAxAI

SQLAlchemy 在 Python 中的同步与异步操作及CRUD实现指南

代码忍者

公司最大的内卷,偷偷做单元测试

禅道项目管理

项目管理 程序员 软件测试 单元测试 测试人员

高性能桌面管理系统助力实现国产化生态!

上海锐起科技

如何提高研发效能?思码逸 & 信通院告诉你

思码逸研发效能

团队管理 DevOps #研发效能

好玩的js特效

百度搜索:蓝易云

利用API返回值实现商品信息的自动化更新

技术冰糖葫芦

API Explorer API 测试 API 策略 pinduoduo API

Ubuntu安装Docker Engine

百度搜索:蓝易云

聊聊 PHP 多进程模式下的孤儿进程和僵尸进程

不在线第一只蜗牛

Percona Toolkit 神器全攻略(开发类)

GreatSQL

这是一款轻量存储黑科技!

天翼云开发者社区

云计算 天翼云 轻量存储

Docker中jdk8容器里无法使用JDK的jmap等命令的问题

百度搜索:蓝易云

稳健前行,合规筑基:哈银消费金融在变革中引领稳健增长新篇章

Geek_2d6073

MobPush推送查询

MobTech袤博科技

Java 开发者 产品动态

火山引擎VeDI实验平台助推企业量化决策能力升级

字节跳动数据平台

大数据 A/B 测试 对比实验 数字化增长

2024即刻职达人才生态合作大会于珠海横琴成功召开,共话数智时代人力资源新趋势

新消费日报

国家下达绿色转型目标!电子签章领域未来的发展趋势如何?

Geek_2a38d5

Docker镜像解析获取Dockerfile文件

百度搜索:蓝易云

豆包模型能力大幅提升,中国版Vision Pro正式发布!今年大模型市场份额第一还会是百度吗?|AI日报

可信AI进展

人工智能

Arbitrum STIP 陷尴尬局面:8500 万美元支出仅换回 1500 万美元收入

TechubNews

DPDK简介和原理

天翼云开发者社区

DPDK

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