写点什么

Wasmtime:终于可以在.NET 应用中运行 WebAssembly 了

  • 2020-01-10
  • 本文字数:973 字

    阅读完需:约 3 分钟

Wasmtime:终于可以在.NET应用中运行WebAssembly了

尽管围绕WebAssembly的势头一直在增长,WebAssembly 运行时Wasmtime才增加对.NET Core的支持,使得基于.NET Core 的应用程序可以运行 WebAssembly 代码。


WebAssembly是安全、可移植的低级代码格式,旨在提供高效执行和紧凑表示。WebAssembly 通过实现硬件无关、语言无关和平台无关,尽可能将可移植性做到极致。


根据来自 Mozilla 的工程师 Peter Huene 介绍,将WebAssembly和.NET集成,可以简化代码共享同时提供更好的未授信代码隔离。


Huene 表示,相较于共享类似 C 库这样的本地库,共享 WebAssembly 模块明显要容易很多,因为前者依赖特定平台构建。而 WebAssembly 模块可以在无需修改的情况下分发。


作为一个示例,Huene 展示了将 Rust 编写的一个库编译成 WebAssembly,然后集成到.NET 应用中。整个过程不需要考虑.NET 应用程序运行的实际处理器架构和操作系统。整个工作流尚未完美简化,因为开发者还需要处理许多诸如值转换等低级别细节。正如 Huene 所说,多亏了即将发布的WebAssembly接口类型提案,这些问题将来都会解决。这个提案将会提升 WebAssembly 和.NET 之间的交互性,简化二者之间复杂数据类型的交换,无需再编写太多胶水代码,可以将 WebAssembly 模块当成是.NET 的包。


WebAssembly 要求显示导入允许模块使用的所有外部函数,并且仅能访问主机平台上保留的内存区域,从而使隔离未受信代码成为可能。该功能让 WebAssembly 模块能够在沙箱环境中高效运行的同时,无需担心陌生插件任意访问主机平台。


Huene 在他的文章中为希望在.NET 应用程序中使用 WebAssembly 的开发者提供了很多有价值的信息,涵盖了整个流程中的所有方面。包括了创建 WebAssembly 代码来解决问题;检查模块需要从主机获得哪些内容,以及想主机提供什么功能;创建.NET 工程并导入 WebAssembly 模块,同时将.NET 函数暴露给 WebAssembly 模块。


浏览器外运行 WebAssembly 应用程序的运行时环境中,Wasmtime 不是唯一一个。这里尤其需要提一下的有,Wasmer,它也和 Wasmtime 一样是一个通用运行时环境;WebAssembly Micro Runtime,专注于小尺寸设备。多亏了 Miguel de Icaza 创建的项目Wasmer-sharp,Wasmer 也能够用于.NET 项目。Wasmtime 和 Wasmer 都处于活跃开发阶段,虽然它们的目标不是完全重合


这两个项目或多或少有些竞争。


原文链接:


Wasmtime Enables Running WebAssembly From .NET Programs


2020-01-10 09:002496

评论

发布
暂无评论
发现更多内容

在 AWS 上重构数据中台,这家出海企业选择了数栈

袋鼠云数栈

大数据 数据中台 运维 数据治理 大数据产品

国产数据库StarRocks在数栈轻量化数据开发的全流程实践

袋鼠云数栈

大数据 运维 数据治理 数据管理 数栈

“念念不忘,必有回响” 与 “着力即差”

酱紫的小白兔

HarmonyOS安全与隐私分论坛举行,全面展示星盾安全2.0生态创新实践

最新动态

一行代码性能翻倍?Rust开发者不可不知的“内存黑科技”!

Yeauty

rust malloc Wasm memory jemalloc

我对 AI 写作的一些思考:Writing in the Age of LLMs

Baihai IDP

人工智能 AI Baihai IDP AI 写作

Academic Pages - 学术个人网站模板

qife

Jekyll 学术网站

DolphinScheduler 社区月报(5-6 月):修复优化齐发力,贡献者高光时刻回顾!

白鲸开源

大数据 开源 Apache DolphinScheduler 贡献者 Apache基金会

2025第三届中国SRE大会成功举办

雅菲奥朗

财会创新智启未来,2025年ACCA华南区年度峰会成功举办

财见

【HarmonyOS】鸿蒙使用仓颉编程入门

GeorgeGcs

DolphinScheduler 6 个高频 SQL 操作技巧

白鲸开源

sql 大数据 开源 Apache DolphinScheduler 任务调度

白鲸开源双项目齐中选,助力“开源之夏 2025”再结硕果!

白鲸开源

开源 DataOps 开源之夏 白鲸开源

数栈 × AWS EMR On EC2 适配实践:打造出海企业可落地的云上数据中台解决方案

袋鼠云数栈

大数据 数据治理 AWS 数据运营 数栈

对话 Wispr Flow 创始人 Tanay:语音输入,如何创造极致的 Voice AI 产品体验

声网

MySQL数据一键同步至ClickHouse数据库

RestCloud

MySQL 数据库 数据同步 ETL Click house

用 AI 解锁技术调研的新姿势

京东科技开发者

DistillQwen-ThoughtY:通过变长思维链蒸馏,全面提升模型推理能力!

阿里云大数据AI技术

人工智能 数据分析 数据处理 模型应用 #大数据

真正的生产力来了!Docker迁移部署两步搞定!

不在线第一只蜗牛

Java Docker 容器

SeaTunnel 社区 2 项目中选“开源之夏 2025”,探索高阶数据集成能力!

白鲸开源

数据库 大数据 开源 Apache SeaTunnel 开源之夏

【7 月 5 日北京】还有 4 天见面,为你整理大会现场还需要知道的事!

Apache IoTDB

DolphinScheduler 社区喜讯:两项学生项目入选“开源之夏 2025”!

白鲸开源

大数据 开源 数据集成 Seatunnel 开源之夏

啥时候上RAG?啥时候上微调?丨实战笔记

阿星AI工作室

AI 产品经理 rag 微调

高并发系统的艺术:如何在流量洪峰中游刃有余

京东科技开发者

系统整容纪:用知识来“武装“自己~认识MySQL的锁与事务

京东科技开发者

Meta 成立超级智能实验室,多名顶尖语音科学家加入;TEN VAD 开源 ONNX 模型,GitHub 破 700 星丨日报

声网

华为OceanProtect跻身Gartner®备份与数据保护平台魔力象限"挑战者"

财见

零代码打造专业级工业数字孪生

袋鼠云数栈

数字孪生 数据应用 数字孪生城市 易知微 3D场景

基于StarRocks的指标平台查询加速方案

袋鼠云数栈

数据库 运维 数据管理 指标管理 指标管理平台

SeaTunnel 社区月报(5-6 月):全新功能上线、Bug 大扫除、Merge 之星是谁?

白鲸开源

大数据 Clickhouse 数据集成 Apache SeaTunnel 版本发布

什么是低代码?低代码的技术发展、技术领域及对比纯代码的优劣势

优秀

低代码 低代码平台 低代码技术

Wasmtime:终于可以在.NET应用中运行WebAssembly了_大前端_Sergio De Simone_InfoQ精选文章