WebAssembly

为什么选择 Rust?

Gears

可预测的性能

没有不可预测的垃圾回收暂停。没有 JIT 编译器性能陡降。只有与高级人体工程学相结合的底层控制。

A microscope

小代码体积

小代码体积意味着更快的页面加载速度。Rust 生成的 .wasm 不包含额外的臃肿代码,例如垃圾收集器。先进的优化和摇树(tree shaking)会删除死代码。

Luggage

现代化的便利设施

一个活跃的库生态系统,可帮助您快速入门。富有表现力的,零成本的抽象。以及一个友好的社区来帮助您学习。

开始吧!

WebAssembly Logo

了解有关名为 WebAssembly 的快速,安全和开放虚拟机,并阅读其标准。

了解更多
wasm ferris

学习如何使用 Rust 构建,调试,分析和部署 WebAssembly 应用程序!

阅读本书
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

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

– Nick Fitzgerald, 使用 Rust 和 WebAssembly 氧化源代码映射

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

– Daniel Reiter Horn and Jongmin Baek, 使用 DivANS 共同构建更好的压缩