Curated WebAssembly CDN



我正在考虑为一个新项目进行webassembly,这让我想知道:

有没有人知道一个联盟正在为网络组装库策划 CDN? 理想情况下,这样的产品将缩短缓存的加载时间,允许依赖注入的好处,并集中加密/安全行为,以便在垃圾击中量子计算的粉丝时可以快速推出新算法。

如果没有,有谁知道如何游说开始?

我意识到许多库可以重新编译为 webassembly 下载,但这会增加应用程序的大小,并给每个商店管理其库消耗带来额外的压力。

精选 CDN 的其他(但不太重要(好处包括支持数据仓库的库的共享性能提升、数据库访问的共享性能提升、编码时强制分离关注点、显着减小项目大小、通过 nuget 简化接口合同等。 好处清单非常庞大。

此外,如果 webassembly 容器获得足够的采用,那么在与语言无关的明确目标下,这些共享库可以作为一种工具,允许在不同技术堆栈之间更无缝地过渡(例如,可能统一 JAVA 流和 .NET linq 库(。 Webassembly 与语言无关。 如果每个技术平台/商店都构建自己的冗余库,这似乎是一种耻辱,这将比在开源审查下建立的库更慢、更不可靠。

理想情况下,这样的产品将通过缓存改善加载时间

它在现代浏览器中不是这样工作的;出于安全原因,它们采用了一种称为双键HTTP缓存的技术(不幸的是,我不知道一个好的解释器可以链接到,但这个应该工作得很好:https://github.com/shivanigithub/http-cache-partitioning/(。

这意味着来自 CDN 的任何资源都单独加载和存储在请求它们的源下,而不是像过去那样在各个网站之间共享。

因此,您最好为特定应用程序实际编译所需的本机库 - 这样您将受益于编译时优化,并且不会为每个用户加载大型库或框架的任何未使用部分。

但是,既然我们已经介绍了性能方面,确实有一些尝试来提供预编译的Wasm模块,主要是针对代码大小不像标准框架那样重要的小型库。

如果你正在寻找用于JavaScript的Wasm库,那么npm就像用于其他库一样,是一个方便的平台,因为你可以将JavaScript包装器(例如Emscripten或wasm-bindgen生成的代码(与实际的本机代码一起发布。 例如,只是一个快速搜索的随机示例:https://www.npmjs.com/package/xsalsa20。

如果您希望发布使用 WASI API 构建的 Wasm 应用程序,那么您可能有兴趣查看 https://wapm.io/,它就是这样做的,并提供了一堆预编译的应用程序。

TL;DR:有一些包管理器和CDN允许发布WebAssembly库和应用程序,但它主要是为了方便,而不是性能;如果您关心性能和下载大小,那么最好为您的特定应用程序自己编译本机库。

相关内容

  • 没有找到相关文章

最新更新