NetWiv

Compatibility

NetWiv keeps the native libraries and the frontend API of a TAURI® app and replaces its Rust core with .NET. This page shows that relationship, then measures how much of the API the desktop SDK, @netwiv/api, implements.

Looking for operating system support? See where NetWiv runs

How NetWiv relates to TAURI

TAURI appNetWiv app
Frontend API@tauri-apps/apiSame API@netwiv/api
Coretauri crate · RustReplacedNetWiv.Core · .NET
Nativewry · tao · muda · tray-iconShared · prebuilt
WebViewWebView2 · WebKitGTK · WKWebViewShared
  • Commands, state, permissions and plugins run in .NET; the native libraries are called through a C ABI.
  • The native layer ships prebuilt in the NuGet packages. No Rust toolchain: just .NET and your frontend.
  • NetWiv is an independent project, not affiliated with or endorsed by The Tauri Programme.

Where this is heading

NetWiv was born on top of TAURI. The aim is for @netwiv/api to stand on its own.

  1. Today@netwiv/apipinned @tauri-apps/api codeThe SDK delegates to pinned upstream frontend code internally. An independent frontend transport is not implemented yet.
  2. Goal@netwiv/apiNetWiv’s own APIThe SDK becomes a NetWiv API in its own right, with its own frontend transport and no TAURI frontend code underneath.
  • Apps already import only @netwiv/api, so the change is meant to happen behind it rather than in app code.

SDK coverage

What the desktop SDK, @netwiv/api, exposes and how much of it is implemented, counted identifier by identifier from the source.

@netwiv/api 0.1.0-dev, inventory reconciled 2026-10-13. Implemented means an execution path exists; it does not mean full argument, error or GUI equivalence. Frontend SDK

  • Implemented614
  • Declaration available55
669 identifiers in the SDK, one square each

Left out of the SDK19

  • Mobile-only 11Back button, activity and scene, input accessory
  • Test mocks 6The mocks module is not part of the facade
  • TAURI identity 2isTauri and getTauriVersion. Runtime detection is retired

By module

ModuleIn the SDKExposedLeft out
app143
core271
dpi46—
event15—
image14—
menu123—
mocks06
path34—
tray35—
webview551
webviewWindow982
window2086
Total66919

window 190 implemented · 18 declaration available · 6 left out

Upstream reference

The runtime is measured against the full pinned @tauri-apps/api 2.11.1 inventory, mobile entries included.

  • Implemented619
  • Declaration available57
  • Not implemented10
  • Intentional difference2
  • 688

243 identifiers have a comparison fixture. SDK-only behavior is not counted as an upstream pass. Full status table

Plugins and extensions

Feature groups, not method-by-method audits. Plugin calls from the frontend go through @netwiv/api/plugins/*; Blazor Hybrid is an optional .NET package. Mobile and the updater are outside the project scope.

  • Implemented1
  • Partial8
  • Experimental1
  • Planned17
  • Not implemented2

Blazor Hybrid Implemented

Managed Razor UI hosting

Optional NetWiv.BlazorHybrid provides matching .NET 8/9/10 assets for Windows x64, Linux x64 and macOS arm64 and defaults to Microsoft's managed WebView services via AddNetWivBlazorHybrid(). Standard component and JS-invokable discovery do not require the experimental registry. Selected native rendering, command IPC, interop and lifecycle checks passed on physical Windows/macOS and Linux under WSLg on X11 and native Wayland. Rider/Visual Studio UI acceptance, Hot Reload and arbitrary component libraries remain unverified. See Blazor Hybrid for platform and debugger validation.

How to read this

Implemented
An execution path exists in the stated platform scope. It does not imply full argument, error or GUI equivalence.
Declaration available
A type or constant comes from the pinned upstream declarations. Its members are counted on their own.
Left out of the SDK
In the upstream inventory but not in the SDK. Still counted in the upstream reference.
Not implemented
Unavailable, including declarations that return empty results or ignore options.
Intentional difference
Deliberately unsupported, such as runtime identity checks. A documented difference, not a pass.

Full status table