Varve.Store.Browser
0.1.0-preview.20
dotnet add package Varve.Store.Browser --version 0.1.0-preview.20
NuGet\Install-Package Varve.Store.Browser -Version 0.1.0-preview.20
<PackageReference Include="Varve.Store.Browser" Version="0.1.0-preview.20" />
<PackageVersion Include="Varve.Store.Browser" Version="0.1.0-preview.20" />
<PackageReference Include="Varve.Store.Browser" />
paket add Varve.Store.Browser --version 0.1.0-preview.20
#r "nuget: Varve.Store.Browser, 0.1.0-preview.20"
#:package Varve.Store.Browser@0.1.0-preview.20
#addin nuget:?package=Varve.Store.Browser&version=0.1.0-preview.20&prerelease
#tool nuget:?package=Varve.Store.Browser&version=0.1.0-preview.20&prerelease
Varve.Store.Browser
Browser storage for a Varve store (ADR 0084).
- The origin private file system, in a dedicated worker. Segments and
derived blobs are files, read and written through synchronous access
handles; a derived blob is read synchronously into the caller's span, which
is what the store's scan needs.
log/has the same names and bytes as the file backend's, so a log copied out of the browser opens on the desktop. - IndexedDB elsewhere — the page's own thread, or a browser without synchronous access handles. An open derived blob is read into memory whole, which bounds it by what the tab may hold.
- Both declare
Durability.Committed: a flush returns when the browser's storage reports it done. An origin's storage is best-effort unless the page is grantednavigator.storage.persist(), which the host asks for if it needs to. - One opener at a time across the origin's tabs and workers, released by
the browser when the context ends; a second is refused with
DatasetLeasedException. - Maintenance is off by default in a browser; call
Dataset.MaintainAsync.
// In a dedicated worker: the origin private file system. On the page: IndexedDB.
await using BrowserStorage storage = await BrowserStorage.OpenAsync(
new BrowserDatasetName("datasets/notes"),
new BrowserStorageOptions { Clock = TimeProvider.System });
await using Dataset dataset = await Dataset.OpenAsync(storage, new DatasetOptions { Clock = TimeProvider.System });
To run .NET in a worker, start dotnet.js from a module worker:
// main.js
new Worker('./worker.js', { type: 'module' });
// worker.js
import { dotnet } from './_framework/dotnet.js';
const { getAssemblyExports, getConfig } = await dotnet.create();
The package ships its JavaScript inside the assembly and imports it from a
data: URL, so there is nothing to deploy; a Content Security Policy that
refuses data: scripts refuses it. It is compiled with AllowUnsafeBlocks
because the [JSImport] source generator requires it; no code written in it
is unsafe.
Layer 5 of Varve, a .NET-native event-sourced RDF store and SPARQL toolkit. MPL-2.0.
| 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
- Varve.Store (>= 0.1.0-preview.20)
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 |
|---|---|---|
| 0.1.0-preview.20 | 41 | 11/10/2026 |
| 0.1.0-preview.19 | 55 | 11/6/2026 |
| 0.1.0-preview.18 | 54 | 11/6/2026 |
| 0.1.0-preview.17 | 48 | 11/6/2026 |
| 0.1.0-preview.16 | 52 | 11/3/2026 |
| 0.1.0-preview.15 | 63 | 10/26/2026 |
| 0.1.0-preview.14 | 57 | 10/26/2026 |
| 0.1.0-preview.13 | 61 | 10/26/2026 |
| 0.1.0-preview.12 | 60 | 10/23/2026 |
| 0.1.0-preview.11 | 59 | 10/21/2026 |
| 0.1.0-preview.10 | 66 | 10/20/2026 |
| 0.1.0-preview.9 | 68 | 10/19/2026 |
| 0.1.0-preview.8 | 60 | 10/17/2026 |
| 0.1.0-preview.7 | 69 | 10/17/2026 |
| 0.1.0-preview.6 | 63 | 10/15/2026 |
| 0.1.0-preview.5 | 59 | 10/15/2026 |
| 0.1.0-preview.4 | 59 | 10/13/2026 |
| 0.1.0-preview.3 | 54 | 10/12/2026 |
| 0.1.0-preview.2 | 62 | 10/9/2026 |
| 0.1.0-preview.1 | 63 | 10/7/2026 |