Wasmtime 22.0.0

dotnet add package Wasmtime --version 22.0.0
                    
NuGet\Install-Package Wasmtime -Version 22.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Wasmtime" Version="22.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Wasmtime" Version="22.0.0" />
                    
Directory.Packages.props
<PackageReference Include="Wasmtime" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Wasmtime --version 22.0.0
                    
#r "nuget: Wasmtime, 22.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=Wasmtime&version=22.0.0
                    
Install Wasmtime as a Cake Addin
#tool nuget:?package=Wasmtime&version=22.0.0
                    
Install Wasmtime as a Cake Tool

Installation

You can add a package reference with the .NET SDK:

$ dotnet add package wasmtime

Introduction

For this introduction, we'll be using a simple WebAssembly module that imports a hello function and exports a run function:

(module
  (func $hello (import "" "hello"))
  (func (export "run") (call $hello))
)

To use this module from .NET, create a new console project:

$ mkdir wasmintro
$ cd wasmintro
$ dotnet new console

Next, add a reference to the Wasmtime package:

$ dotnet add package wasmtime

Replace the contents of Program.cs with the following code:

using System;
using Wasmtime;

using var engine = new Engine();

using var module = Module.FromText(
    engine,
    "hello",
    "(module (func $hello (import \"\" \"hello\")) (func (export \"run\") (call $hello)))"
);

using var linker = new Linker(engine);
using var store = new Store(engine);

linker.Define(
    "",
    "hello",
    Function.FromCallback(store, () => Console.WriteLine("Hello from C#!"))
);

var instance = linker.Instantiate(store, module);
var run = instance.GetAction("run")!;
run();

An Engine is created and then a WebAssembly module is loaded from a string in WebAssembly text format.

A Linker defines a function called hello that simply prints a hello message.

The module is instantiated and the instance's run export is invoked.

To run the application, simply use dotnet:

$ dotnet run

This should print Hello from C#!.

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 is compatible. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETStandard 2.0

  • .NETStandard 2.1

    • No dependencies.
  • net8.0

    • No dependencies.

NuGet packages (12)

Showing the top 5 NuGet packages that depend on Wasmtime:

Package Downloads
DevCycle.SDK.Server.Local

.NET Server Local Bucketing SDK for DevCycle

Opa.Wasm

Call Open Policy Agent (OPA) policies in WASM (Web Assembly) from .NET

OpaDotNet.Wasm

Open Policy Agent (OPA) WebAssembly dotnet core SDK

DOPA

A .NET API for evaluating OPA policies compiled as WebAssembly modules.

Deislabs.WAGI

Provides a configuration driven method to add WAGI modules as route endpoints to ASP.Net Core applications using WAGI.WARNING: WAGI is experimental. It is not considered production-grade by its developers, neither is it "supported" software..

GitHub repositories (5)

Showing the top 5 popular GitHub repositories that depend on Wasmtime:

Repository Stars
betwixt-labs/bebop
🎷No ceremony, just code. Blazing fast, typesafe binary serialization.
PixiEditor/PixiEditor
PixiEditor is a Universal Editor for all your 2D needs
SteveSandersonMS/DotNetIsolator
A library for running isolated .NET runtimes inside .NET
JasonBock/Rocks
A mocking library based on the Compiler APIs (Roslyn + Mocks)
bytecodealliance/wasmtime-demos
Historical and dated demos for Wasmtime usage and WASI content
Version Downloads Last updated
22.0.0 54,576 7/9/2024
21.0.1 615 6/29/2024
20.0.2 200 6/28/2024
19.0.1 12,475 4/7/2024
19.0.0 5,672 3/27/2024
18.0.0 214 3/27/2024
17.0.0 24,344 1/26/2024
16.0.0 6,077 1/2/2024
15.0.0 960 11/21/2023
14.0.0 66,235 10/24/2023
13.0.0 1,927 9/22/2023
12.0.2 263 9/21/2023
12.0.1 240 9/21/2023
12.0.0 2,883 8/21/2023
11.0.2 238 9/22/2023
11.0.1 193,192 7/27/2023
11.0.0 273 7/27/2023
10.0.2 214 9/22/2023
10.0.1 230 9/22/2023
10.0.0 1,196 7/5/2023
9.0.3 815 6/2/2023
9.0.2 1,522 5/30/2023
9.0.1 29,494 5/22/2023
9.0.0 291 5/22/2023
8.0.1 3,901 4/27/2023
8.0.0 884 4/21/2023
7.0.1 337 4/27/2023
7.0.0 1,051 4/1/2023
6.0.2 358 4/27/2023
6.0.1 1,851 3/8/2023
6.0.0 938 2/27/2023
5.0.1 677 3/8/2023
5.0.0 67,298 1/25/2023
4.0.1 445 3/8/2023
4.0.0 562 1/25/2023
3.0.0 42,500 12/8/2022
2.0.2 985 11/10/2022
2.0.1 703 11/9/2022
2.0.0 505 11/9/2022
1.0.2 568 11/11/2022
1.0.1 528 11/9/2022
1.0.0 2,263 9/26/2022
0.40.0-preview1 2,772 8/29/2022
0.39.1-preview2 2,942 8/11/2022
0.39.1-preview1 246 8/10/2022
0.39.0-preview1 246 8/10/2022
0.38.1-preview1 1,864 6/29/2022
0.38.0-preview1 264 6/29/2022
0.37.0-preview1 953 6/14/2022
0.36.0-preview1 908 4/26/2022
0.35.2-preview1 1,794 4/5/2022
0.35.1-preview1 272 4/5/2022
0.35.0-preview1 559 3/9/2022
0.34.0-preview1 19,480 2/11/2022
0.33.0-preview2 18,109 1/25/2022
0.33.0-preview1 708 1/7/2022
0.32.1-preview1 290 1/7/2022
0.32.0-preview1 582 12/18/2021
0.31.0-preview1 7,873 11/1/2021
0.30.0-preview1 6,796 9/17/2021
0.29.0-preview1 864 8/6/2021
0.28.0-preview1 52,259 6/15/2021
0.27.0-preview1 1,170 5/22/2021
0.26.1-preview1 317 5/21/2021
0.26.0-preview1 827 4/20/2021
0.25.0-preview1 1,240 3/18/2021
0.24.0-preview1 408 3/18/2021
0.23.0-preview1 590 2/19/2021
0.22.1-preview1 2,386 1/19/2021
0.22.0-preview1 484 1/19/2021
0.21.0-preview1 661 1/14/2021
0.20.0-preview1 1,617 11/2/2020
0.19.0-preview1 1,796 7/24/2020
0.18.1-preview1 1,009 7/1/2020
0.18.0-preview1 656 6/30/2020
0.15.0-preview1 1,136 4/6/2020
0.12.0-preview1 939 2/26/2020
0.8.0-preview2 750 12/5/2019
0.8.0-preview1 579 11/23/2019
0.0.1-alpha1 595 10/2/2019

Update Wasmtime to 22.0.0.