Varve.Protocol.Client 0.1.0-preview.20

This is a prerelease version of Varve.Protocol.Client.
dotnet add package Varve.Protocol.Client --version 0.1.0-preview.20
                    
NuGet\Install-Package Varve.Protocol.Client -Version 0.1.0-preview.20
                    
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="Varve.Protocol.Client" Version="0.1.0-preview.20" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Varve.Protocol.Client" Version="0.1.0-preview.20" />
                    
Directory.Packages.props
<PackageReference Include="Varve.Protocol.Client" />
                    
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 Varve.Protocol.Client --version 0.1.0-preview.20
                    
#r "nuget: Varve.Protocol.Client, 0.1.0-preview.20"
                    
#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 Varve.Protocol.Client@0.1.0-preview.20
                    
#: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=Varve.Protocol.Client&version=0.1.0-preview.20&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Varve.Protocol.Client&version=0.1.0-preview.20&prerelease
                    
Install as a Cake Tool

Varve.Protocol.Client

The HTTP client for a Varve server, and what a server needs to reach other servers: SERVICE over HTTP for the evaluator, and the document fetch that LOAD needs, both under an endpoint policy the operator sets.

  • SparqlHttpClient talks to one dataset's endpoints: queries and updates (SPARQL 1.1 Protocol), the Graph Store Protocol, the change feed and the diff, and the dataset's management resources under /manage/ (with a token for the management audience), with If-Match, Varve-As-Of and Accept as the caller says. Its bearer token comes from a BearerTokenProvider called for every request, so one client serves many users; a token past its expiry is never sent (ADR 0127).
  • FollowAsync follows the commits: history in pages, then the live tail, each commit to a handler and then its position to an IFollowCheckpoint: at least once, resumable from any position (ADR 0129). The records are Varve.Delta's, so a consumer of the feed ships no store (ADR 0128).
  • ApplyAsync makes a dataset's data what a DatasetSetup declares: its baseline by the Graph Store Protocol and its migrations, on a dataset the management plane declares (ADR 0163), each recorded in varve:setup in its own commit; applying it again commits nothing (ADR 0130). DatasetSetupFile reads one from the setup file's YAML subset.
  • AddVarve (Varve.Protocol.Client.Hosting) registers the client in an application's services and applies its setup as the host starts, failing the start when it cannot (ADR 0131).
  • HttpServiceHandler implements the evaluator's IServiceHandler: the SERVICE pattern is sent as SELECT … WHERE { … }, the answer read back with Varve.Sparql.Results. A failure is returned, and SILENT is the evaluator's decision (ADR 0055).
  • RdfDocumentClient fetches an RDF document by IRI with content negotiation over the four syntaxes. A host binds ILoadSource to it.
  • EndpointPolicy decides every outbound address before a connection is opened: an allow-list of IRI prefixes, empty by default; http and https only; loopback, link-local and private addresses refused unless allowed; no redirects, no credentials in the authority.
  • ClientLimits bound every request: a timeout and a cap on response bytes.
EndpointPolicy policy = new(["https://query.wikidata.org/"], allowPrivateAddresses: false);
HttpClient http = OutboundHttp.CreateClient();
EvaluationOptions options = new() { ServiceHandler = new HttpServiceHandler(http, policy, ClientLimits.Default) };

ADRs 0103, 0104 and 0127–0131.

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
0.1.0-preview.20 45 11/10/2026
0.1.0-preview.19 55 11/6/2026
0.1.0-preview.18 49 11/6/2026
0.1.0-preview.17 52 11/6/2026
0.1.0-preview.16 55 11/3/2026
0.1.0-preview.15 90 10/26/2026
0.1.0-preview.14 56 10/26/2026
0.1.0-preview.13 62 10/26/2026
0.1.0-preview.12 78 10/23/2026
0.1.0-preview.11 60 10/21/2026
0.1.0-preview.10 65 10/20/2026
0.1.0-preview.9 67 10/19/2026
0.1.0-preview.8 66 10/17/2026
0.1.0-preview.7 68 10/17/2026
0.1.0-preview.6 61 10/15/2026
0.1.0-preview.5 57 10/15/2026
0.1.0-preview.4 59 10/13/2026
0.1.0-preview.3 56 10/12/2026
0.1.0-preview.2 63 10/9/2026