Web­Assembly

为什么选择 Rust?

Gears

可预测的性能

没有不可预测的垃圾回收暂停。没有 JIT 编译器的性能瓶颈。只有低级控制与高级易用性相结合。

A microscope

小的代码体积

小的代码体积意味着更快的页面加载速度。Rust 生成的 .wasm 不包含额外的冗余,例如垃圾回收器。高级优化和 tree shaking 可以移除无用代码。

Luggage

现代化的便利

活跃的库生态系统,帮助您快速上手。富有表现力的零成本抽象。以及热情的社区,助您学习。

开始使用!

WebAssembly Logo

了解更多关于快速、安全、开放的虚拟机 WebAssembly,并阅读其标准文档。

了解更多
wasm ferris

学习如何使用 Rust 构建、调试、剖析和部署 WebAssembly 应用!

阅读《Rust 程序设计语言》
MDN logo

在 Mozilla Developer Network 上了解更多关于 WebAssembly 的信息。

查看详情

与 JavaScript 良好协作

增强,而非替代

WebAssembly 的目标不是取代 JavaScript,而是与其协同工作,助力处理密集型或低级任务——这些任务都能从 Rust 对性能的关注中获益。

使用熟悉的工具链

将 Rust WebAssembly 包发布到 npm 等包注册表。使用 webpack、Parcel 等工具打包并分发它们。使用 npm audit 和 Greenkeeper 等工具维护它们。

无缝互操作

自动生成 Rust、WebAssembly 和 JavaScript API 之间的绑定代码。利用像 web-sys 这样的库,它为整个 Web 平台提供了预打包的绑定。

生产环境使用

cloudflare logo
我们可以将 Rust 编译到 WASM,并从编织到互联网基础架构中的无服务器函数调用它。这意义重大,我迫不及待地想做更多这方面的工作。

– Steven Pack,《使用 Cloudflare Workers 运行无服务器 Rust

JavaScript 实现 [source-map 库] 为了性能积累了复杂的代码,我们将其替换为惯用的 Rust 代码。Rust 没有强迫我们在清晰表达意图和运行时性能之间做出选择。

– Nick Fitzgerald,《使用 Rust 和 WebAssembly “氧化” Source Maps

dropbox
如上所示,[Rust 的] 特性使其易于将 DivANS 编解码器通过 WASM 嵌入网页中。

– Daniel Reiter Horn 和 Jongmin Baek,《与 DivANS 一起构建更好的压缩算法