首页 > 其他分享 >本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9

本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9

时间:2023-11-16 12:05:07浏览次数:40  
标签:WebAssembly 推迟 WASI https dotnet NET com


本计划在 .NET 8 中推出的 WASI  已推迟到 .NET 9,请参阅 Github 上的 WASI 跟踪问题。 在.NET 8 Preview 4 开始支持生成与 WASI 兼容的 .wasm 文件,使用独立的 WebAssembly 运行时 Wasmtime CLI[1] 运行该文件。

去年的文章 在 .NET 7上使用 WASM 和 WASI [2]介绍了 WebAssembly WASI的支持最早在Steve Sanderson 个人仓库 SteveSandersonMS/dotnet-wasi-sdk 开始引入,接着正式引入到 dotnet/dotnet-wasi-sdk, 目前这部分工作已经引入到dotnet/runtime 的WASI 跟踪问题 [3]。  Steve Sanderson 在Youtube视频 [4]解释了如何获得单个 wasm 文件,.NET 8 添加了一个新的“wasi-experimental”工作负载,取代了早期的 Wasi.Sdk。这是为服务器端 WebAssembly 方案提供 .NET 本机内置支持的一个步骤。他还展示了几个令人兴奋的使用示例。

鉴于WASI的字节码联盟 WebAssembly:面向开发人员的更新路线图[5],因为WASI预览版2和3非常有可能会引入重大变化,这对于.NET 对WASI的支持非常有意义。WebAssembly(Wasm)生态系统正在转型。开发人员可以期待一个模块化、可虚拟化且强大的环境来构建应用程序、库和服务。

我们来看一看在.NET 8 下面如何使用WASI。

.NET SDK: .NET 8.0 RC1
dotnet cli :  .NET WebAssembly Build Tools
.NET workloads:
  • wasi-experimental
  • wasm-experimental
  • wasm-tools (来自 Visual Studio)

本计划在 .NET 8 中推出的 WASI 推迟到 .NET 9_WebAssembly

Wasmtime CLI: 通过MSI 安装了14.0 版本

示例程序参考:wasiconsole-hello-world[6]

相关链接:

标签:WebAssembly,推迟,WASI,https,dotnet,NET,com
From: https://blog.51cto.com/shanyou/8416019

相关文章

  • 快速入门:构建您的第一个 .NET Aspire 应用程序
    前言云原生应用程序通常需要连接到各种服务,例如数据库、存储和缓存解决方案、消息传递提供商或其他Web服务。.NETAspire旨在简化这些类型服务之间的连接和配置。在本快速入门中,您将了解如何创建.NETAspireStarter应用程序模板解决方案。准备条件要使用.NETAspire,您需......
  • Net 高级调试之九:SOSEX 扩展命令介绍
    一、介绍今天是《Net高级调试》的第九篇文章。这篇文章设计的内容挺多的,比如:扩展的断点支持,如何查找元数据,栈回溯,对象检查,死锁检测等等,内容挺多的。功能特别强大,使用特别方便,但是需要说明一点,这些功能不是SOS的功能,是SOSEX的扩展功能,但是,这一系列功能只是支持NetFr......
  • Kubernetes statefulset
    k8s的statefulset是用用于有状态服务的部署,存储和网络都是有顺序的,会按照顺序先down掉服务再起来,所以当部署的这台服务器down掉之后,就不能down掉这个服务,而会一直处于Terminating状态,无法启动新的服务。所以单副本的应用最好用deploy进行部署,使用statefulset可能会出现这种问题。......
  • .NET8依赖注入新特性Keyed services
    什么是KeyedserviceKeyedservice是指,为一个需要注入的服务定义一个KeyName,并使用使用KeyName检索依赖项注入(DI)服务的机制。使用方法通过调用AddKeyedSingleton(或AddKeyedScoped或AddKeyedTransient)来注册服务,与KeyName相关联。或使用[FromKeyedServices]属性指......
  • NS-3源码学习(二)Channel和NetDevice
    NS-3源码学习(二)Channel和NetDevice对于一个新的802.11协议的实现,仅需要完成对两个抽象类的实现即可,一个是Channel抽象类,一个是NetDevice接口,这两个类对上层来说是透明的,而且据我查阅代码了解,这两个类仅需知道上一层(网络层)是IPv4协议还是IPv6协议即可,并没有对上层有更高的要求。M......
  • Chen Shuo's Practical Network Programming - TTCP Lecture代码注释
    下面是C语言版本的TTCP,主要注释的是voidreceive(constOptions&opt);函数,负责在服务器接收客户端发送的数据://muduo/examples/ace/ttcp/ttcp_blocking.cc#include...//接受新的TCP连接staticintacceptOrDie(uint16_tport){...}//完整的写N个字节staticint......
  • 可怕!.Net 8正式发布了,.Net野心确实不小!
    随着三天.NETConf2023的会议结束了,.Net8正式发布了。.Net8是官方号称有史以来性能最快的一个版本了。.Net8增加了数以千计的性能、稳定性和安全性改进,以及平台和工具增强功能,有助于提高开发人员的工作效率和创新速度。反正就是快,性能好、工作效率更高!这个版本,.Net重塑......
  • ASP.Net MVC使用特性路由
    ASP.NETMVC中使用特性路由需要在默认路由前调用routes.MapMvcAttributeRoutes();需要注意Action上使用特性路由时需要注意不能以/开头不能写成/Controller/Action如果使用了routes.MapMvcAttributeRoutes();出现不能调用控制器“xx”上的操作方法“xx”,因为该方法是一种泛......
  • 持续集成指南:GitHubAction 自动构建+部署AspNetCore项目
    前言之前研究了使用GitHubAction自动构建和发布nuget包:开发现代化的.NetCore控制台程序:(4)使用GithubAction自动构建以及发布nuget包现在更进一步,使用GitHubAction在其提供的runner里构建docker镜像,之后提交到阿里云镜像私有仓库,再在本地的runner将镜像pull下来......
  • .NET 过滤器、中间件、AOP、拦截器及其应用
    一、过滤器(Filter)    一共5种、 AuthorizationFilter,ResourceFilter,ExceptionFilter,ActionFilter,ResultFilter    1.1、ExceptionFilter        新增全局异常过滤器GlobalExceptionFilter.cs。        当出现异常时进......