WebAssembly
为什么选择 Rust?
可预测的性能
没有不可预测的垃圾回收暂停。没有 JIT 编译器性能陡降。只有与高级人体工程学相结合的底层控制。
小代码体积
小代码体积意味着更快的页面加载速度。Rust 生成的 .wasm
不包含额外的臃肿代码,例如垃圾收集器。先进的优化和摇树(tree shaking)会删除死代码。
现代化的便利设施
一个活跃的库生态系统,可帮助您快速入门。富有表现力的,零成本的抽象。以及一个友好的社区来帮助您学习。
与 JavaScript 配合良好
增强,而不是取代
WebAssembly 的梦想不是杀死 JavaScript,而是与它一起工作,以帮助超负荷处理繁重或底层的任务,这些任务受益于 Rust 对性能的关注。
使用熟悉的工具链
将 Rust WebAssembly 包发布到像 npm 这样的包注册表中。使用 webpack,Parcel 等工具捆绑并交付它们。使用 npm audit
和 Greenkeeper 等工具进行维护。
无缝互操作
在 Rust,WebAssembly 和 JavaScript API 之间自动生成绑定代码。利用诸如 web-sys
之类的库,这些库为整个 Web 平台提供了预先打包的绑定。
生产应用
我们可以将 Rust 编译为 WASM,并从嵌入到互联网结构中的无服务器函数中调用它。这很棒,我迫不及待想要做更多的事情。
– Steven Pack, 使用 Cloudflare Workers 的无服务器 Rust
[source-map
库的] JavaScript 实现以性能为名积累了复杂的代码,我们用惯用的 Rust 替换了它。Rust 没有强迫我们在清晰表达意图和运行时性能之间做出选择。
– Nick Fitzgerald, 使用 Rust 和 WebAssembly 氧化源代码映射
[Rust 的] 特性使其易于使用 WASM 将 DivANS 编解码器嵌入网页中,如上所示。
– Daniel Reiter Horn and Jongmin Baek, 使用 DivANS 共同构建更好的压缩