WebAssembly
为什么选择 Rust?
可预测的性能
没有不可预测的垃圾回收暂停。没有 JIT 编译器的性能瓶颈。只有低级控制与高级易用性相结合。
小的代码体积
小的代码体积意味着更快的页面加载速度。Rust 生成的 .wasm
不包含额外的冗余,例如垃圾回收器。高级优化和 tree shaking 可以移除无用代码。
现代化的便利
活跃的库生态系统,帮助您快速上手。富有表现力的零成本抽象。以及热情的社区,助您学习。
开始使用!
了解更多关于快速、安全、开放的虚拟机 WebAssembly,并阅读其标准文档。
了解更多
学习如何使用 Rust 构建、调试、剖析和部署 WebAssembly 应用!
阅读《Rust 程序设计语言》在 Mozilla Developer Network 上了解更多关于 WebAssembly 的信息。
查看详情与 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》
JavaScript 实现 [source-map
库] 为了性能积累了复杂的代码,我们将其替换为惯用的 Rust 代码。Rust 没有强迫我们在清晰表达意图和运行时性能之间做出选择。
– Nick Fitzgerald,《使用 Rust 和 WebAssembly “氧化” Source Maps》
如上所示,[Rust 的] 特性使其易于将 DivANS 编解码器通过 WASM 嵌入网页中。
– Daniel Reiter Horn 和 Jongmin Baek,《与 DivANS 一起构建更好的压缩算法》