在 2025 收官前,看清 Data + AI 的真实走向,点击查看 BUILD 大会精华版 了解详情
写点什么

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

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

关注

评论

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

共铸国云智领未来| “云游”华夏?山西美景正当时!

天翼云开发者社区

超级MMM互助盘DAPP系统开发源代码(案例演示)

开发微hkkf5566

NFTScan 与 Dmail 达成合作伙伴,双方在 NFT 数据领域展开合作

NFT Research

NFT

无线WiFi信号强度统计:WiFi Signal Strength Explorer 激活版

真大的脸盆

Mac wifi Mac 软件 无线管理 WiFi统计

Excel 进阶|只会 Excel 也能轻松搭建指标应用啦

Kyligence

数据分析 Excel数据分析 指标平台

云行| 三大重磅发布,助力重庆数字经济新发展!

天翼云开发者社区

欢迎大家来到不可思议又有趣的SQL世界

图灵教育

sql 数据库、 SQL sever

YRCloudFile V6.10.0 功能新增对 NVIDIA GPUDirect 与回收站的支持

焱融科技

#高性能 #分布式文件存储 #文件存储 #全闪存储 #容器存储

人工智能迎来iPhone时刻,拟人化AI进入爆发前夜

硬科技星球

一个有效的图表图像数据提取框架

合合技术团队

人工智能 计算机视觉 表格识别 图象识别

智能、高效、便捷问题定位利器 —— 应用诊断分析平台 ATP 上线

OpenAnolis小助手

内存泄露 龙蜥社区 应用诊断 ATP 异常行为

小白线下学习前端培训怎么样

小谷哥

利用自动化平台可以做的那亿点事 |得物技术

得物技术

社招内推!JAVA、测开、数仓、前端均有坑

Qunar技术沙龙

互联网 工作 社招

GPT-5紧急叫停?千名专家联名呼吁,AI技术的未来又该何去何从?

加入高科技仿生人

人工智能 AI技术 ChatGPT GPT-4

常见的项目管理问题如何应对?| 得物技术

得物技术

最新版本 Stable Diffusion 开源 AI 绘画工具之汉化篇

江户川码农

本地化 汉化教程 AI绘画 Stable Diffusion Chinese

风云变幻,尽收眼底!天翼云为气象信息化发展注智赋能

天翼云开发者社区

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易智企

开源 实时音视频 低延时直播

超越 ChatGPT,GPT-4 将成为下一个“顶流”?

Zilliz

ChatGPT

如何轻松应对偶发异常

阿里巴巴云原生

阿里云 微服务 云原生

共铸国云繁荣生态!天翼云华东中心生态合作大会圆满举行

天翼云开发者社区

全球开源盛会!GOTC 2023 即将拉开帷幕,15 大分论坛不容错过!

kk-OSC

大会 #开源

聚焦云原生 | MIAOYUN入选开源GitOps产业联盟生态图景2.0

MIAOYUN

云计算 开源 云原生 开源社区 开源生态

【4月1日 上海站】融云社交泛娱乐出海赋能会,干货、礼品在等你!

融云 RongCloud

互联网 融云 泛娱乐 出海 通讯

“易+”开源 | 基于 ijkplayer 的 LLS-Player 移动端应用实践

网易云信

开源 实时音视频 低延时直播

智慧公厕系统:提高管理效率与用户体验的创新解决方案

光明源智慧厕所

智慧城市 智慧物业 智慧屏 智慧机场

全国首个政企采购云平台:政采云基于 Dubbo 的混合云跨网方案实践

阿里巴巴云原生

阿里云 云原生 dubbo

CloudQuery 社区版重启 | 我们做了哪些准备?

BinTools图尔兹

数据库 社区版 数据库管理系统

智慧公厕:现代科技与城市卫生的完美结合

光明源智慧厕所

智慧城市 智慧物业 智慧机场

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