WACS.WASI.Threads
0.2.1
dotnet add package WACS.WASI.Threads --version 0.2.1
NuGet\Install-Package WACS.WASI.Threads -Version 0.2.1
<PackageReference Include="WACS.WASI.Threads" Version="0.2.1" />
<PackageVersion Include="WACS.WASI.Threads" Version="0.2.1" />
<PackageReference Include="WACS.WASI.Threads" />
paket add WACS.WASI.Threads --version 0.2.1
#r "nuget: WACS.WASI.Threads, 0.2.1"
#:package WACS.WASI.Threads@0.2.1
#addin nuget:?package=WACS.WASI.Threads&version=0.2.1
#tool nuget:?package=WACS.WASI.Threads&version=0.2.1
WACS.WASI.Threads
wasi-threads host adapter for the
WACS WebAssembly runtime — implements
wasi:thread-spawn on top of Wacs.Core's built-in atomics + wait/notify operations.
Lets shared-memory wasm modules spawn worker threads against a real System.Threading
backend.
Install
dotnet add package WACS.WASI.Threads
Module requirements
The wasm module must:
- Import or declare a shared memory (memory with the
sharedflag set). - Export
wasi_thread_start (param i32 i32)— the worker entry point. WACS calls this with the thread ID (i32) and a user-supplied start argument (i32) per wasi-threads' spec.
Quick start — interpreter / runtime extension
using Wacs.Core.Runtime;
using Wacs.WASI.Threads;
var runtime = new WasmRuntime();
runtime.UseWasiThreads(); // wires wasi:thread-spawn
// (optionally chain other host packages: UseWasiPreview1 / UseWasiPreview2 / ...)
var module = BinaryModuleParser.ParseWasm(File.OpenRead("threaded.wasm"));
var inst = runtime.InstantiateModule(module);
runtime.RegisterModule("app", inst);
if (runtime.TryGetExportedFunction(("app", "_start"), out var addr))
runtime.CreateInvokerAction(addr).Invoke();
Quick start — CLI
wacs run threaded.wasm --wasi-threads
--wasi-threads is shorthand for --bind Wacs.WASI.Threads. The CLI verifies the module
declares shared memory and exports wasi_thread_start before instantiation; missing
either trips a clear startup error.
What it provides
WasiThreadsBindable : IBindable— discoversWACS_WASINN_GGUF_DIR-style host surface, wireswasi:thread-spawnagainst the shared runtimeruntime.UseWasiThreads()— chained extension method[assembly: WasiHostPackage]marker soruntime.AutoDiscoverHostPackages()picks this assembly up automatically when it's loaded into the AppDomain
Documentation
- Top-level WACS README — Threads
docs/COMPONENT_CHAINING.mdfor runtime-requirements composition with other WASI host packages
License
Apache-2.0
| Product | Versions 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. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.1
- WACS (>= 0.13.7)
- WACS.HostBindings.Abstractions (>= 0.3.0)
-
net8.0
- WACS (>= 0.13.7)
- WACS.HostBindings.Abstractions (>= 0.3.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.