我正在考虑在一个新项目中使用webassembly,这让我很好奇。
有谁知道有一个财团正在为webassembly库策划一个CDN? 理想的情况是,这样的服务可以通过缓存来改善加载时间,允许依赖注入的好处,并集中加密安全行为,以便在量子计算出现问题时,可以快速推出新算法。
如果没有,有谁知道如何游说启动一个?
我意识许多库可以重新编译成webassembly下载,但那会使应用规模膨胀,并给每个商店管理其库的消耗带来额外的压力。
策划CDN的额外(但不太关键)好处将包括:支持数据仓库的库的共享性能提升、数据库访问的共享性能提升、编码时强制分离关注点、项目规模显著缩小、通过nuget简化接口合同等等。 这一系列的好处是相当巨大的。
另外,如果webassembly容器得到了足够的应用,这种共享库可以作为一种工具,在语言不可知的目标下,允许从不同的技术栈(可能统一JAVA流和.NET linq库等)进行更多的无缝过渡。 Webassembly的目的是为了不分语言。 如果每个技术平台店都建立自己的冗余库,似乎会很可惜,这样做的作用是比在开源的审查下锻造的库更慢,更不可靠。
理想情况下,这样的产品可以通过缓存来改善加载时间。
在现代浏览器中并不是这样工作的,出于安全考虑,他们加入了一种叫做双键HTTP缓存的技术(不幸的是,我不知道有什么好的解释可以链接出来,但这个应该很好用。https:/github.comshivanigithubhttp-cache-partitioning。).
这意味着任何来自CDN的资源都会被单独加载并存储在请求它们的源头下,而不是像过去那样在不同网站之间共享。
因此,你最好为你的特定应用实际编译所需的本地库--这样你将从编译时的优化中受益,并且不会为每个用户加载任何未使用的庞大库或框架的部分。
然而,既然我们已经涵盖了性能方面的问题,确实有一些试图为预编译的Wasm模块提供服务,主要是针对微小的库,在这些库中,代码大小不像标准框架那样受到关注。
如果你正在寻找从JavaScript中使用的Wasm库,那么npm就像其他库一样,是一个方便的平台,因为你可以将JavaScript包装器(例如Emscripten或wasm-bindgen生成的代码)与实际的本地代码一起发布。例如,只是一个快速搜索的随机例子。https:/www.npmjs.compackagexsalsa20.
如果您正在寻找以WASI API构建的Wasm应用程序,那么您可能会对以下内容感兴趣 https:/wapm.io,它就是这样做的,并提供了一堆预编译的应用程序。
TL;DR.Tl;,有一些包管理器和CDN允许运送WebAssembly库和应用程序,但它主要是做的。 有一些包管理器和CDN允许运送WebAssembly库和应用程序,但这主要是为了方便,而不是为了性能;如果你关心性能和下载量,那么你最好自己为你的特定应用程序编译本地库。