![]() |
VOOZH | about |
dotnet add package WACS.WASI.NN.DependencyInjection --version 0.3.0
NuGet\Install-Package WACS.WASI.NN.DependencyInjection -Version 0.3.0
<PackageReference Include="WACS.WASI.NN.DependencyInjection" Version="0.3.0" />
<PackageVersion Include="WACS.WASI.NN.DependencyInjection" Version="0.3.0" />Directory.Packages.props
<PackageReference Include="WACS.WASI.NN.DependencyInjection" />Project file
paket add WACS.WASI.NN.DependencyInjection --version 0.3.0
#r "nuget: WACS.WASI.NN.DependencyInjection, 0.3.0"
#:package WACS.WASI.NN.DependencyInjection@0.3.0
#addin nuget:?package=WACS.WASI.NN.DependencyInjection&version=0.3.0Install as a Cake Addin
#tool nuget:?package=WACS.WASI.NN.DependencyInjection&version=0.3.0Install as a Cake Tool
DI bundle + concrete resource impls for
WACS.WASI.NN. This is the package the
transpiler-direct-link path needs at scope-construction time — without it,
[constructor]X for wasi-nn resources falls back to delegate dispatch and returns handle
0 to the guest.
dotnet add package WACS.WASI.NN.DependencyInjection
For most wasi-nn workflows, install this package alongside
WACS.WASI.Preview2.DependencyInjection
WACS.WASI.NN.OnnxRuntime / WACS.WASI.NN.LlamaSharp /
WACS.WASI.NN.MLNet).WasiNNBundle — exposes WASI.NN's [WitSource] interfaces (IGraphFuncs,
IInferenceFuncs, IErrorFuncs) as properties that direct-link emit binds toWasiPreview2NNBundle — composite bundle that forwards BOTH Preview 2 and WASI.NN
interfaces through one CLR object. Required when a component imports wasi:cli/* +
wasi:nn/* (the typical SLM / inference-CLI shape)Tensor, Graph, GraphExecutionContext, Error —
parameterless ctor + SourceGen-shape void Create(args) that
Activator.CreateInstance(impl) instantiatesAddWasiNN + AddWasiPreview2NNBundle service-collection extensionsusing Microsoft.Extensions.DependencyInjection;
using Wacs.WASI.Preview2.DependencyInjection;
using Wacs.WASI.NN.DependencyInjection;
using Wacs.WASI.NN.OnnxRuntime;
using Wacs.WASI.NN.Types;
var services = new ServiceCollection();
services
.AddWasiPreview2()
.AddWasiNN(opts =>
{
opts.AddBackend(GraphEncoding.ONNX, new OnnxBackend());
// or:
// opts.Configuration.LoadByNameBackend = new LlamaSharpBackend(...);
})
.AddWasiPreview2NNBundle(); // composite for the single hostBundle slot
using var sp = services.BuildServiceProvider();
using var scope = sp.CreateScope();
var linker = scope.ServiceProvider.GetRequiredService<Linker>();
// linker.Runtime is the WasmRuntime ready for component instantiation
WasiPreview2RuntimeScope (one-shot)For most embedders the simpler path is WasiPreview2RuntimeScope from
WACS.WASI.Preview2.DependencyInjection,
which auto-detects this package on the load path and registers the composite bundle
without manual configuration:
using var wasi = new WasiPreview2RuntimeScope(runtime,
preopens: new[] { ("./models", "/models") });
// wasi.Bundle is automatically the composite when this DI sibling is loaded
Auto-wires OnnxBackend if WACS.WASI.NN.OnnxRuntime is loadable; auto-wires LlamaSharp
into both Backends[GGML] and LoadByNameBackend if WACS.WASI.NN.LlamaSharp is
loadable.
The typed resource interfaces (ITensor, IGraph, IGraphExecutionContext, IError)
live in WACS.WASI.NN — they're what
direct-link emit references at the import call site. The concrete impl classes here
(Tensor, Graph, etc.) are what the transpiler instantiates via
Activator.CreateInstance(impl) + Create(args) for [constructor]X. Both halves are
needed; splitting them keeps the typed surface light when an embedder doesn't need the
default impls.
docs/COMPONENT_CHAINING.md
— runtime requirements, host-package composition, end-to-end examplesApache-2.0
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 net5.0 was computed. net5.0-windows net5.0-windows was computed. net6.0 net6.0 was computed. net6.0-android net6.0-android was computed. net6.0-ios net6.0-ios was computed. net6.0-maccatalyst net6.0-maccatalyst was computed. net6.0-macos net6.0-macos was computed. net6.0-tvos net6.0-tvos was computed. net6.0-windows net6.0-windows was computed. net7.0 net7.0 was computed. net7.0-android net7.0-android was computed. net7.0-ios net7.0-ios was computed. net7.0-maccatalyst net7.0-maccatalyst was computed. net7.0-macos net7.0-macos was computed. net7.0-tvos net7.0-tvos was computed. net7.0-windows net7.0-windows was computed. net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
| .NET Core | netcoreapp3.0 netcoreapp3.0 was computed. netcoreapp3.1 netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 netstandard2.1 is compatible. |
| MonoAndroid | monoandroid monoandroid was computed. |
| MonoMac | monomac monomac was computed. |
| MonoTouch | monotouch monotouch was computed. |
| Tizen | tizen60 tizen60 was computed. |
| Xamarin.iOS | xamarinios xamarinios was computed. |
| Xamarin.Mac | xamarinmac xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos xamarinwatchos was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.