webassembly runtime现已添加.net core api,开发者可直接在.net应用程序中调用webassembly模块。
mozilla宣布由bytecode alliance创建的wasmtime(webassembly runtime)现已添加处于早期预览版状态的.net core api,这就意味着开发者可以直接在.net应用程序中调用webassembly代码。
bytecode alliance(字节码联盟)是由mozilla、fastly、intel与red hat联合成立的组织,该联盟旨在通过协作实施标准和提出新标准,以完善webassembly在浏览器之外的生态。mozilla提到,.net core作为一个跨平台的runtime,仍提供对webassembly的支持主要三个好处,除了可跨平台共享更多代码之外,还能安全地隔离不受信任的代码,同时凭借着webassembly的接口类型(webassembly interface types),webassembly和.net可相互传递复杂类型。
虽然我们能够使用.net core构建跨平台应用,但如果要使用诸如c或是rust等原生函数库,这仍然是十分不方便的操作,因为需要函数库为每个平台发布特定函数库版本。不过有了webassembly之后,我们可以将其作为桥梁以简单满足上面的需求。原生函数库可以先编译成webassembly,然后包括.net core在内的许多平台就能使用这些webassembly模块,这将简化函数库的发布以及应用程序对这些函数库的依赖方式。
由于webassembly是面向网页设计的,网页是一种每次访问网站(读/写数据)都会执行不受信任代码的环境,webassembly模块只能调用从主机环境明确输入的外部函数,而且只能在主机分配的内存区域进行读写数据,这种沙盒设计方式也能被应用在.net core中,以增加安全性。通过支持webassembly,.net core也能使用沙盒以执行不信任代码。
另外,bytecode alliance力推的webassembly接口类型增加了webassembly与其他语言的互通性,.net core也能从中受益。mozilla表示,webassembly接口类型简化了应用程序与webassembly模块间来回传递复杂类型所需的“胶水代码”。当wasmtime的.net api最终可以对接口类型进行操作,webassembly和.net之间就能够无缝地传递复杂类型。
最后,wasmtime新增加的这个.net core api尚处于预览阶段,bytecode alliance成员仍在对其积极开发中,更新将不保证向后兼容。当前目标是让wasmtime更为稳定,因此不建议开发者将wasmtime的.net core api用于正式产品开发。
图像传感器行业分析
水环真空泵支撑侧轴承位磨损如何修复
PogoPin连接器有什么优势?
Easy-Doks CR34闹钟上市:同时为6台移动设备充电
VCS2373磁阻开关
.NET应用程序可以直接调用WebAssembly模块了
浅谈µModule稳压器LTM4700的使用问题
一加10 Pro与iPhone 13的对比,二者的优缺点分析
芯闻3分钟:华为帮巴西测试5G获成功 推动90Hz高帧手游
南昌属于VR的一天,VR政策落地的一年
中兴通讯部长陈宗琮表示光接入和5G更多是融合协同和互补的关系
MCU和CPU的区别是什么
了解光伏发电转化为稳定输出的清洁电力
电动汽车中电池的未来:采访 OneD Battery Sciences 的首席执行官
华为智能手表WatchGT2将于9月19日发布
编译器优化教程:寄存器分配 2
ForwardXP宣布新增游戏部门 从VR扩展到游戏开发和独立游戏发行
3D打印技术在医疗行业发展趋势和最新行情
华为即将发布配备鸿蒙OS系统的汽车智能屏幕
JBU羁绊之声无线蓝牙耳机初入江湖 国产品牌厚积薄发