Xapi.Client.Outbox
0.2.0
dotnet add package Xapi.Client.Outbox --version 0.2.0
NuGet\Install-Package Xapi.Client.Outbox -Version 0.2.0
<PackageReference Include="Xapi.Client.Outbox" Version="0.2.0" />
<PackageVersion Include="Xapi.Client.Outbox" Version="0.2.0" />
<PackageReference Include="Xapi.Client.Outbox" />
paket add Xapi.Client.Outbox --version 0.2.0
#r "nuget: Xapi.Client.Outbox, 0.2.0"
#:package Xapi.Client.Outbox@0.2.0
#addin nuget:?package=Xapi.Client.Outbox&version=0.2.0
#tool nuget:?package=Xapi.Client.Outbox&version=0.2.0
Xapi.Client.Outbox
A durable outbox for Experience API (xAPI 2.0 and 1.0.3) statements on top of Xapi.Client. EnqueueAsync
stores a statement on disk and returns; the outbox delivers it later, in order and in batches, with retries,
error classification, dead letters and idempotent resend. Statements survive network outages, LRS downtime and
app restarts.
dotnet add package Xapi.Client.Outbox
Usage
With using Xapi;, using Xapi.Client; and using Xapi.Client.Outbox;:
var http = new HttpClient();
var client = new XapiClient(http, new XapiClientOptions
{
Endpoint = new Uri("https://lrs.example.com/xapi/"),
Credentials = XapiCredentials.Basic(key, secret),
});
var store = await FileOutboxStore.OpenAsync(Path.Combine(dataDirectory, "xapi-outbox"));
var outbox = new StatementOutbox(client, store);
// Deliver in the background until the token is cancelled or the outbox is disposed
_ = outbox.RunAsync(shutdown.Token);
await outbox.EnqueueAsync(statement);
// Or deliver now, for example before the app is suspended
var result = await outbox.FlushAsync();
Target frameworks
netstandard2.0 (.NET Framework 4.6.2 and later) and net10.0. The net10.0 build can be trimmed and
published with Native AOT, and adds a hosted service that delivers in the background.
Links
- Outbox guide: delivery guarantees, dead letters, storage
- API reference
- Source, issues and changelog
License
Apache License 2.0. The package contains the LICENSE, NOTICE and THIRD-PARTY-NOTICES.md files.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Microsoft.Bcl.AsyncInterfaces (>= 10.0.0)
- Microsoft.Bcl.TimeProvider (>= 8.0.1)
- System.Diagnostics.DiagnosticSource (>= 7.0.0)
- System.Text.Json (>= 10.0.0)
- Xapi.Client (>= 0.2.0)
-
net10.0
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.13)
- Microsoft.Extensions.Http (>= 10.0.13)
- Xapi.Client (>= 0.2.0)
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.2.0 | 40 | 10/17/2026 |
| 0.1.0-preview.1 | 39 | 10/17/2026 |