Rask.Web
0.23.1-alpha.0.133
dotnet add package Rask.Web --version 0.23.1-alpha.0.133
NuGet\Install-Package Rask.Web -Version 0.23.1-alpha.0.133
<PackageReference Include="Rask.Web" Version="0.23.1-alpha.0.133" />
<PackageVersion Include="Rask.Web" Version="0.23.1-alpha.0.133" />
<PackageReference Include="Rask.Web" />
paket add Rask.Web --version 0.23.1-alpha.0.133
#r "nuget: Rask.Web, 0.23.1-alpha.0.133"
#:package Rask.Web@0.23.1-alpha.0.133
#addin nuget:?package=Rask.Web&version=0.23.1-alpha.0.133&prerelease
#tool nuget:?package=Rask.Web&version=0.23.1-alpha.0.133&prerelease
Rask.Web
Every web API the browser ships, in C#, generated from MDN. MDN's globals and interfaces, with MDN's names:
await Navigator.Clipboard.WriteText("hi");
var dark = await Window.MatchMedia("(prefers-color-scheme: dark)").Matches;
await LocalStorage.SetItem("theme", "dark");
await using var mql = await Window.MatchMedia("(min-width: 800px)"); // kept: a handle, disposed with the scope
var wide = await mql.Matches;
- One round trip per
await.Navigator.Clipboard.WriteText(…)records the path and runs it in the browser once; nothing crosses the wire until you await. - An object you keep is a handle. Awaiting a proxy (
await Window.MatchMedia(q)), or a member whose promise resolves to an object, keeps that object in the browser until you dispose of it. - MDN's names, no
Asyncsuffix, and each member's doc comment gives its browser support and links to MDN and the spec.IsSupportedasks the browser whether it has one:await Navigator.Clipboard.IsSupported. Set<RaskBrowserTargets>safari >= 16; firefox >= 115</RaskBrowserTargets>and the build warns (RASK098) at a call one of those browsers lacks, unless anIsSupportedcheck guards it. - Both hosts. On the server host each chain runs over the page's socket; in WebAssembly, in-process. Call it from
an event handler or
OnRendered, where the page is live. What only WebAssembly can run — a call that needs the user's click in progress (Navigator.Share,Notification.RequestPermission), WebGL, WebGPU — comes withRask.Wasm, so a server app cannot call it by mistake. - Imported for you. The package adds
global using Rask.Web;and the aliasglobal using Types = Rask.Web.Types;(private Types.IntersectionObserver? _io;), and Rask.Server and Rask.Wasm carry it to every app. A global named like a Rask type (EditContext,FormData) leaves the bare name to Rask's; MDN's isRask.Web.FormData. - The DOM stays Rask's. Nothing that returns or rewrites DOM nodes is generated; use an element ref for an element's own members.
Part of Rask. Docs: browser APIs.
| Product | Versions 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. |
-
net10.0
- Rask (>= 0.23.1-alpha.0.133)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Rask.Web:
| Package | Downloads |
|---|---|
|
Rask.Wasm
The Rask browser host: runs a Rask app's C# components client-side on .NET WebAssembly, with the client halves of the batteries — the mediator and query cache, remote dispatch, accounts, validation and the component kit — on by default. Ships the JS boot scripts, the page shell, and the MSBuild integration that stages them into the published bundle — and, opted in, prerenders every route to static HTML with a sitemap.xml at publish, so a static host serves real pages to visitors and crawlers. Depends on Rask, the shared core. |
|
|
Rask.Server
The ASP.NET host for Rask, a full-stack .NET web framework, with every battery: database (SQLite, PostgreSQL or SQL Server, picked by Rask:Database:Provider), mediator and query cache, accounts, background jobs, transactional email, cache, file storage, outbox, operator dashboard, durable logs, Web Push, SQLite snapshots and continuous backup. Renders Rask components with live updates over a WebSocket. RaskApp.Create(args).Run<App>() is the whole Program.cs, and RaskApp.Create(args).Serve() the whole server of a WebAssembly client; app.Configure(c => c.Jobs.Off()) is how an app does without one. Depends on Rask, the shared core. |
|
|
Rask.SQLite.Browser
Runs Microsoft.Data.Sqlite (and Entity Framework Core on top of it) inside a browser WebAssembly app, with the database persisted across reloads. The database file lives in the WASM runtime's in-memory filesystem; this package restores it from IndexedDB at boot and writes it back on a schedule and on page-hide, using SQLite's Online Backup API (never an unsafe file copy) via Rask.SQLite.Snapshots. A Web Lock elects one tab as the owner, so several open tabs cannot write over each other. Register `AddRaskBrowserSqlite("app")` and point your DbContext at `BrowserSqlite.ConnectionString("app")` — the same registration you would write on the server. Add `UseRaskFullTextSearch()` from Rask.SQLite.EntityFrameworkCore and Rask.Data's full-text search (`HasFullTextSearch`, `Search(text)`) runs on FTS5 in the browser too. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.23.1-alpha.0.133 | 30 | 10/2/2026 |
| 0.23.1-alpha.0.132 | 33 | 10/2/2026 |
| 0.23.1-alpha.0.131 | 25 | 10/2/2026 |
| 0.23.1-alpha.0.130 | 26 | 10/2/2026 |
| 0.23.1-alpha.0.129 | 28 | 10/2/2026 |
| 0.23.1-alpha.0.128 | 30 | 10/2/2026 |
| 0.23.1-alpha.0.127 | 33 | 10/2/2026 |
| 0.23.1-alpha.0.126 | 29 | 10/2/2026 |
| 0.23.1-alpha.0.125 | 30 | 10/2/2026 |
| 0.23.1-alpha.0.123 | 34 | 10/2/2026 |
| 0.23.1-alpha.0.122 | 34 | 10/1/2026 |
| 0.23.1-alpha.0.121 | 37 | 10/1/2026 |
| 0.23.1-alpha.0.117 | 32 | 10/1/2026 |
| 0.23.1-alpha.0.116 | 31 | 9/30/2026 |
| 0.23.1-alpha.0.115 | 40 | 9/30/2026 |
| 0.23.1-alpha.0.114 | 35 | 9/30/2026 |
| 0.23.1-alpha.0.113 | 40 | 10/1/2026 |
| 0.23.1-alpha.0.110 | 36 | 10/1/2026 |
| 0.23.1-alpha.0.108 | 34 | 9/30/2026 |
| 0.23.1-alpha.0.106 | 34 | 9/30/2026 |