Tapline.Client
0.2.0
dotnet add package Tapline.Client --version 0.2.0
NuGet\Install-Package Tapline.Client -Version 0.2.0
<PackageReference Include="Tapline.Client" Version="0.2.0" />
<PackageVersion Include="Tapline.Client" Version="0.2.0" />
<PackageReference Include="Tapline.Client" />
paket add Tapline.Client --version 0.2.0
#r "nuget: Tapline.Client, 0.2.0"
#:package Tapline.Client@0.2.0
#addin nuget:?package=Tapline.Client&version=0.2.0
#tool nuget:?package=Tapline.Client&version=0.2.0
Tapline.Client
The core of Tapline, a real-time, last-mile data distribution engine for .NET, and its .NET client: shared state fanned out to many clients, prioritised, conflated and ack-clocked, with ordered messaging beside it. Transport-agnostic and allocation-free in steady state.
- Sources: last values, and transactional replicated tables of fixed-size rows, with custom folds and finalizers.
- Messages: topics every subscriber reads in order, and each subscription's own mailbox.
- Outlets and the router (
Publisher): one outlet a client, flow-controlled from its acknowledgements, and data providers deciding who may subscribe to what. - The client (
TaplineClient), whatever carries its frames: replicas of what it subscribed to (tables, sequence and checksum verified; values; watches; message streams), acknowledged frame by frame, resynced, resumed after a reconnect, out-of-band records fetched, and the router's notices. - MagicOnion (gRPC, HTTP/2), the client's side: one duplex call per connection, moved between routers, make before break, when one drains (
TaplineRouters).
var connection = new TaplineStreamConnection(GrpcChannel.ForAddress("http://localhost:5902"));
connection.Connected += (outletId, nonce) => { /* step 1 on your server, then connection.Client.Subscribe(binding, handler) */ };
await connection.RunAsync(stopping);
A server takes Tapline, which brings this in. A client signing in by password adds Tapline.Client.Opaque.
Documentation
License
Elastic License 2.0 (ELv2), included as LICENSE.txt.
The source code is available under the same license at github.com/markhammond/tapline.
| 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
- MagicOnion.Client (>= 7.11.0)
- MessagePack (>= 3.1.12)
- Microsoft.Extensions.Diagnostics.HealthChecks.Abstractions (>= 10.0.5)
NuGet packages (2)
Showing the top 2 NuGet packages that depend on Tapline.Client:
| Package | Downloads |
|---|---|
|
Tapline
Tapline's router hosted in ASP.NET Core: real-time, last-mile fan-out of shared state and ordered messages, over a Blazor Server circuit or MagicOnion (gRPC); data providers in process or in their own; sign-in by modules (passkeys, passthrough, tickets, your own); LiveGrid, a virtual data grid for live data, its source a database and its stream merged; alerts by shape; the ops port, the router's viewer and the browser client (tapline.js). |
|
|
Tapline.Client.Opaque
A .NET client's password sign-in to Tapline by OPAQUE (RFC 9807), the password never leaving it: opaque-ke 4 (ristretto255, Argon2id) as WebAssembly, run by Wasmtime — the module Tapline.Wasm's sign-in serves the browser. |
GitHub repositories
This package is not used by any popular GitHub repositories.
Initial public release.