Rask.Wire 0.23.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Rask.Wire --version 0.23.0
                    
NuGet\Install-Package Rask.Wire -Version 0.23.0
                    
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="Rask.Wire" Version="0.23.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Rask.Wire" Version="0.23.0" />
                    
Directory.Packages.props
<PackageReference Include="Rask.Wire" />
                    
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 Rask.Wire --version 0.23.0
                    
#r "nuget: Rask.Wire, 0.23.0"
                    
#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 Rask.Wire@0.23.0
                    
#: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=Rask.Wire&version=0.23.0
                    
Install as a Cake Addin
#tool nuget:?package=Rask.Wire&version=0.23.0
                    
Install as a Cake Tool

Rask.Wire

The primitives Rask's generated wire codecs are written against. You do not normally call these yourself — a source generator emits the code that does — but the package is public because that generated code lands in your compilation and has to have something to call.

Three things live here:

  • WireJson — reflection-free readers and writers over Utf8JsonReader/Utf8JsonWriter, one per primitive shape. Each reader takes the property name it is reading so a mismatch reports "wire said X, expected Y" naming the property, rather than a stack trace from inside the serializer. They live in a package instead of being emitted so the message is written once and the generated file stays readable.
  • RemoteFile — a file travelling to a server. The carrier only: a message declares the app-level file type, and the generated codec adapts it.
  • FileDownload — a file travelling back. Named this rather than FileResult so it does not collide with Microsoft.AspNetCore.Mvc in an app that has both.

Why it is its own package

Rask.Cqrs and Rask.Api both generate codecs, and a codec should read the same on either wire. The alternatives were both worse: duplicating these types puts two of each on the path of any app using both packages, and making one depend on the other drags a mediator into an app that only wanted REST.

No reflection and no assembly scanning, so it publishes clean under the WASM/AOT trimmer.

Documentation: https://rask.sh

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.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • net10.0

    • No dependencies.
  • net11.0

    • No dependencies.

NuGet packages (7)

Showing the top 5 NuGet packages that depend on Rask.Wire:

Package Downloads
Rask.Cqrs

Source-generated, reflection-free CQRS/mediator for .NET. Define `IQuery<T>`, `ICommand`, `ICommand<T>` and `INotification` messages with their handlers, then dispatch through `IDispatcher` with the response type inferred — no runtime reflection and no assembly scanning, so it publishes clean under the WASM/AOT trimmer. Pipeline behaviors provide the decorator hook for cross-cutting logging/validation/transactions. Standalone: depends only on Microsoft.Extensions.DependencyInjection.Abstractions.

Rask.Logging

A durable, queryable log store for ASP.NET Core apps built with Rask — kept in a SQLite file of its own, or in the application's PostgreSQL or SQL Server database through EF Core, with no agent and no hosted log service. Registers a standard `ILoggerProvider`, so it captures exactly what every other sink sees, buffers entries through a bounded channel that never blocks the caller, and writes them in batches on a background service. Retention is enforced by age and by row count, swept in short pages so locks are never held for long. Pairs with Rask.Dashboard, whose Logs page reads the store. Server-side.

Rask

The core of Rask, a full-stack .NET web framework: C# components and the element chain, routing, forms, the typed browser APIs and scoped CSS/TypeScript, with the source generators and build integration that make them work. Shared by the server host (Rask.Server) and the browser host (Rask.Wasm); reference it on its own from a library of components.

Rask.Api.Client

Call your own API controllers and minimal API endpoints from C# with no URL string at the call site. A source generator reads the endpoint declarations and emits one typed client per controller, with reflection-free JSON codecs, so the route, the verb, the request shape and the response shape cannot drift from the server. Publishes clean under the WASM/AOT trimmer.

Rask.Auth

Register, sign in and sign out for a Rask app, on by default. Accounts are the app's own User aggregate (PBKDF2 or bcrypt password hashing, passkeys beside the password, one revocable session row per signed-in device, sign-in throttling) and are exposed through Rask's own host-neutral surface — the same IUserProvider, Authorize component and [Authorize] routes work unchanged on the Server, WebAssembly, island, SPA and meta-framework hosts. rask new writes the /login, /register, /logout and /devices pages into the app, and the matching /api/auth endpoints give a TypeScript front end the same flows. Email confirmation and password reset go out through the app's own mail queue, with /confirm-email, /forgot-password and /reset-password pages scaffolded to match. The first account to register becomes the admin.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.23.1-alpha.0.84 128 9/25/2026
0.23.1-alpha.0.82 47 9/25/2026
0.23.1-alpha.0.81 51 9/25/2026
0.23.1-alpha.0.80 36 9/25/2026
0.23.1-alpha.0.79 79 9/25/2026
0.23.1-alpha.0.78 39 9/25/2026
0.23.1-alpha.0.76 77 9/25/2026
0.23.1-alpha.0.74 39 9/25/2026
0.23.1-alpha.0.72 49 9/25/2026
0.23.1-alpha.0.70 59 9/25/2026
0.23.1-alpha.0.69 63 9/25/2026
0.23.1-alpha.0.68 72 9/25/2026
0.23.1-alpha.0.67 62 9/25/2026
0.23.1-alpha.0.66 56 9/24/2026
0.23.1-alpha.0.65 65 9/24/2026
0.23.1-alpha.0.64 61 9/24/2026
0.23.1-alpha.0.62 67 9/24/2026
0.23.1-alpha.0.61 71 9/24/2026
0.23.1-alpha.0.50 65 9/24/2026
0.23.0 260 9/18/2026
Loading failed