PeakSWC.RemoteWebViewService.Lib 10.0.14

There is a newer version of this package available.
See the version list below for details.
dotnet add package PeakSWC.RemoteWebViewService.Lib --version 10.0.14
                    
NuGet\Install-Package PeakSWC.RemoteWebViewService.Lib -Version 10.0.14
                    
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="PeakSWC.RemoteWebViewService.Lib" Version="10.0.14" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PeakSWC.RemoteWebViewService.Lib" Version="10.0.14" />
                    
Directory.Packages.props
<PackageReference Include="PeakSWC.RemoteWebViewService.Lib" />
                    
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 PeakSWC.RemoteWebViewService.Lib --version 10.0.14
                    
#r "nuget: PeakSWC.RemoteWebViewService.Lib, 10.0.14"
                    
#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.
#:package PeakSWC.RemoteWebViewService.Lib@10.0.14
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PeakSWC.RemoteWebViewService.Lib&version=10.0.14
                    
Install as a Cake Addin
#tool nuget:?package=PeakSWC.RemoteWebViewService.Lib&version=10.0.14
                    
Install as a Cake Tool

PeakSWC.RemoteWebViewService.Lib

The RemoteWebViewService as a library. The same code that runs as RemoteWebViewService.exe (and in the Railway container) can be hosted inside your own process, for example a WPF or WinForms app that shows its RemoteBlazorWebView UI in a local browser or a WebView2 iframe without a separate server process.

Embedded (in-process)

using PeakSWC.RemoteWebView;

// Loopback, plain HTTP, free ports. Returns once Kestrel is listening; does not block.
await using var server = await RemoteWebViewServer.StartAsync(new RemoteWebViewServerOptions
{
    MaxClients = 1,
    FrameAncestors = ["'self'", "https://host.example"],   // optional
    ConfigureLogging = lb => lb.AddDebug(),                 // optional; default is silent
});

blazorWebView.ServerUri = server.BaseUri;      // browsers: http://127.0.0.1:<port>/
blazorWebView.GrpcBaseUri = server.GrpcUri;    // native gRPC client: http://127.0.0.1:<grpcPort>/
// The page for a client is new Uri(server.BaseUri, $"app/{blazorWebView.Id}")

await server.StopAsync();                      // or dispose
  • Port = 0 (the default) binds a free port; read the real one from server.Port / server.BaseUri.
  • Plain HTTP is allowed only on a loopback address, so no development certificate is needed. Without TLS there is no ALPN, so browsers (HTTP/1.1, gRPC-Web) and the native gRPC client (HTTP/2) get separate ports. Set UseHttps = true (dev certificate) or Certificate to serve both on one HTTPS port.
  • The embedded host does not change the current directory or thread pool, does not read the host app's appsettings.json or environment variables, and does not hook Ctrl+C or process exit.
  • MaxClients limits concurrent RemoteWebView clients (a new CreateWebView gets 503 / Unavailable); browser requests for connected clients are never blocked. With MaxClients = 1 the client-list and file-watcher services are not mapped. The agent hub (doc/Agents.md) is never mapped when embedded.
  • FrameAncestors adds Content-Security-Policy: frame-ancestors ... to HTML responses and rejects cross-origin script calls whose Origin is not listed. Same-origin calls are always allowed.

Experimental: agent registry

The agent registry (AgentHub / AgentAdmin, see doc/Agents.md in the repository) is experimental and may change or be removed in any release. Its public types are marked [Experimental("RWV001")], so using them produces compiler diagnostic RWV001; add <NoWarn>$(NoWarn);RWV001</NoWarn> to opt in. The rest of this package is not affected.

Standalone

RemoteWebViewServer.Run(args);   // what RemoteWebViewService.exe does
RemoteWebViewServer.Run(5001, maxNumClients: 1, frameAncestors: ["'self'"]);   // blocking, HTTPS on loopback
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
10.0.15 0 11/11/2026
10.0.14 94 11/8/2026
0.0.2 1,840 7/1/2025
0.0.1 354 6/26/2025

Based on maui 10.0.14

Changes since 10.0.13
Merge pull request #79 from budcribar/claude/escape-release-notes
Escape commas and semicolons in the release notes passed to dotnet pack
Merge pull request #78 from budcribar/claude/fix-webview-version-test
Expect WebView 10.0.14 in the module serving version test
Merge pull request #76 from budcribar/fix/nuget-release-readiness
Merge pull request #75 from budcribar/claude/remote-component-exit-on-eof
Prepare NuGet release packaging, CI test coverage, and remote component contract hardening
RemoteComponentHost: ExitWhenInputCloses, exit when stdin ends instead of polling
Merge pull request #73 from budcribar/claude/agent-registry-experimental
Merge pull request #74 from budcribar/claude/mirror-safe-remote-frames
Keep remote component frames from restarting when the app is mirrored
Mark agent registry (AgentHub/AgentAdmin) experimental (RWV001)
Merge pull request #72 from budcribar/claude/fix-authorization-build
Bump NuGet packages to latest stable (staying on .NET 10)
Restore Authorization package references in RemoteWebViewService.Lib
Merge pull request #70 from budcribar/claude/remote-components-generator
Merge remote-tracking branch 'origin/net10' into claude/remote-components-generator
Merge pull request #69 from budcribar/claude/remote-components
Merge remote-tracking branch 'origin/net10' into claude/remote-components
Merge pull request #68 from budcribar/claude/remote-blazor-generator
Merge pull request #71 from budcribar/claude/generic-wording
Describe agents and the embedded relay without naming one app
Remote components README: use a generic contract example
Merge branch 'claude/remote-components' into claude/remote-components-generator
Remote components: describe the use generically
Add the [RemoteComponentContract] source generator
Add remote components: runtime and the WPF RemoteComponentHost
Add ReverseMirror to [RemoteBlazor]
Add the [RemoteBlazor] source generator
Port the net9 test-runner and window-sizing fixes.
Install nvm-windows when RunTests.ps1 cannot find nvm.
Throw the frame-ancestor error after the scan.
Name the first invalid frame ancestor after valid ones.
Merge pull request #67 from budcribar/net10-bugbounty-fixes
Port Bug02, Bug03 (dispose-on-throw), Bug06, Bug15, Bug44, and Bug60 fixes and regression tests
Set the net10 packages to 10.0.14 and the current Microsoft 10.0 libraries.
Fix Sonar reliability and security findings that are safe to backport.
Merge pull request #64 from budcribar/claude/net10-opaque-origin-frames
Let pages in opaque-origin sandboxed iframes connect
Merge pull request #62 from budcribar/claude/net10-embedded-server
Merge net10 (scroll sync) into claude/net10-embedded-server
Synchronize primary browser scrolling to read-only mirrors
EmbeddedRelayWpf: embed wwwroot so a single-file publish works
EmbeddedRelayWpf: target Windows 10 SDK and show crashes
Copy RemoteWebViewService.Lib into the Docker build and server CI paths
Split RemoteWebViewService into an embeddable library for net10
Gate AgentAdmin starts with AGENT_ADMIN_KEY and guard in-flight starts
Add the agent registry (AgentHub / AgentAdmin) to RemoteWebViewService
Add in-memory event log provider for GetLoggedEvents on Linux
Add Linux container mode with Kestrel TLS/HTTP2 for Railway TCP proxy.
Fail the performance check when the baseline has no samples.
Add the net10 intermittent CI failure log.
Add the package release workflow for the net10 line.
Read Chrome output on a dedicated thread before waiting for DevTools.
Fail the module-serving step when either test suite fails.
Port the Chrome module initializer tests onto net10.
Measure TestConnectedEvent from the Connected signal, not the pause.
Cancel the WhenAny delays in the lifecycle tests.
Assert that ping completed after shutdown.
Use TheoryData for the file-read failure cases.

Full list: https://github.com/budcribar/RemoteBlazorWebView/compare/10.0.13...66928b247e28dcae5b286883f208c8ae202ed973