Rask.Wire
0.21.1-alpha.0.34
See the version list below for details.
dotnet add package Rask.Wire --version 0.21.1-alpha.0.34
NuGet\Install-Package Rask.Wire -Version 0.21.1-alpha.0.34
<PackageReference Include="Rask.Wire" Version="0.21.1-alpha.0.34" />
<PackageVersion Include="Rask.Wire" Version="0.21.1-alpha.0.34" />
<PackageReference Include="Rask.Wire" />
paket add Rask.Wire --version 0.21.1-alpha.0.34
#r "nuget: Rask.Wire, 0.21.1-alpha.0.34"
#:package Rask.Wire@0.21.1-alpha.0.34
#addin nuget:?package=Rask.Wire&version=0.21.1-alpha.0.34&prerelease
#tool nuget:?package=Rask.Wire&version=0.21.1-alpha.0.34&prerelease
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 overUtf8JsonReader/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 thanFileResultso it does not collide withMicrosoft.AspNetCore.Mvcin 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 | 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
- No dependencies.
NuGet packages (5)
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.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. |
|
|
Rask.Auth.Client
The browser half of Rask.Auth. Register it and a WebAssembly app gets the same IAuth and IUserProvider a server-rendered one has — register, sign in and sign out are the identical calls, and reading the current user is the identical property. It talks to the app's own /api/auth endpoints over a same-origin cookie, so no token is ever held in JavaScript. Deliberately free of ASP.NET Core Identity and Entity Framework: neither belongs in a trimmed browser publish. |
|
|
Rask.Auth.Api
Register, sign in and sign out as JSON endpoints, for an ASP.NET Core app that renders no Rask components — a TypeScript SPA host or a meta-framework host, where the front end owns the UI. Accounts are the app's own User aggregate (PBKDF2 or bcrypt password hashing, passkeys, one revocable session row per device, sign-in throttling) and are exposed at /api/auth, with email confirmation and password reset through the app's own mail queue and optional bearer tokens. The first account to register becomes the admin. This is the host-neutral half of Rask.Auth: no components, no renderer, no Rask.Core. Add Rask.Auth instead when the app IS a Rask app and wants the built-in sign-in pages. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.23.1-alpha.0.4 | 34 | 9/18/2026 |
| 0.23.1-alpha.0.3 | 33 | 9/18/2026 |
| 0.23.1-alpha.0.2 | 52 | 9/18/2026 |
| 0.23.1-alpha.0.1 | 32 | 9/18/2026 |
| 0.23.0 | 47 | 9/18/2026 |
| 0.22.1-alpha.0.23 | 65 | 9/17/2026 |
| 0.22.1-alpha.0.22 | 54 | 9/17/2026 |
| 0.22.1-alpha.0.21 | 63 | 9/17/2026 |
| 0.22.1-alpha.0.20 | 58 | 9/17/2026 |
| 0.22.1-alpha.0.18 | 56 | 9/17/2026 |
| 0.22.1-alpha.0.16 | 57 | 9/17/2026 |
| 0.22.1-alpha.0.15 | 70 | 9/16/2026 |
| 0.22.1-alpha.0.14 | 71 | 9/16/2026 |
| 0.22.1-alpha.0.13 | 70 | 9/16/2026 |
| 0.22.1-alpha.0.12 | 70 | 9/16/2026 |
| 0.22.1-alpha.0.9 | 94 | 9/16/2026 |
| 0.22.1-alpha.0.8 | 68 | 9/16/2026 |
| 0.22.1-alpha.0.7 | 72 | 9/16/2026 |
| 0.22.1-alpha.0.6 | 70 | 9/16/2026 |
| 0.21.1-alpha.0.34 | 112 | 9/11/2026 |