NextGenSoftware.OASIS.Edge.ONET.Runtime
1.0.3
dotnet add package NextGenSoftware.OASIS.Edge.ONET.Runtime --version 1.0.3
NuGet\Install-Package NextGenSoftware.OASIS.Edge.ONET.Runtime -Version 1.0.3
<PackageReference Include="NextGenSoftware.OASIS.Edge.ONET.Runtime" Version="1.0.3" />
<PackageVersion Include="NextGenSoftware.OASIS.Edge.ONET.Runtime" Version="1.0.3" />
<PackageReference Include="NextGenSoftware.OASIS.Edge.ONET.Runtime" />
paket add NextGenSoftware.OASIS.Edge.ONET.Runtime --version 1.0.3
#r "nuget: NextGenSoftware.OASIS.Edge.ONET.Runtime, 1.0.3"
#:package NextGenSoftware.OASIS.Edge.ONET.Runtime@1.0.3
#addin nuget:?package=NextGenSoftware.OASIS.Edge.ONET.Runtime&version=1.0.3
#tool nuget:?package=NextGenSoftware.OASIS.Edge.ONET.Runtime&version=1.0.3
OASIS Edge ONET Runtime
Composes OASIS Edge Runtime with an authenticated ONET application-message channel: durable local storage, peer identity binding, signed capability advertisements and discovery-based HyperDrive synchronization. It does not load a Full ONODE, BootLoader or ASP.NET server on the device.
Installation
dotnet add package NextGenSoftware.OASIS.Edge.ONET.Runtime
NuGet package and versions · Source
Targets netstandard2.1 and net8.0; depends on Edge Runtime and ONET. Install this composition when the application uses ONET, or use Edge Runtime directly with another supported authenticated synchronization transport.
Features
- All underlying Edge Runtime local persistence, durable outbox, synchronization, conflict and lifecycle APIs through
EdgeRuntime. - Authenticated bootstrap peer binding; the platform identity must match the channel's local node ID.
- Signed, expiring Edge-profile capabilities advertising
hyperdrive-sync-v3andoffline-first. - Default EdgeSQLite capabilities: durable outbox, local read/write and snapshot rebase; hosts may supply eligible additional provider capabilities.
- Capability discovery targeting a Full-profile HyperDrive synchronization service.
- Optional federated capability registries with explicit quorum, renewal diagnostics and warnings.
- Offline grants through a host-provided bootstrap transport and secure session storage/validation.
Compose and start
The host must provide:
EdgeRuntimeOptionswith stable device/authenticated avatar IDs and persistent database path.- An authenticated
IONETApplicationMessageChanneland hosted ONODE ID. - An authenticated
IHyperDrivePeerBindingTransportfor bootstrap identity binding. - A platform-secure
IEdgeNodeIdentitymatchingchannel.LocalNodeId, and anIEdgeConnectivityMonitor. - If offline sessions are enabled: grant transport, secure session store and pinned signing-key validator.
Example inside your host's asynchronous startup method, using those already-configured objects:
using NextGenSoftware.OASIS.Edge.ONET.Runtime;
await using var runtime = new OASISEdgeOnetRuntime(
options, channel, hostedNodeId, peerBindingTransport,
offlineGrantTransport: grantTransport,
secureSessionStore: secureSessionStore,
offlineGrantValidator: grantValidator);
var started = await runtime.StartAsync(identity, connectivityMonitor, cancellationToken);
if (started.IsError)
logger.LogError("{Code}: {Message}", started.ErrorCode, started.Message);
// Keep this scope alive for the application session. Use runtime.EdgeRuntime
// for local entities, synchronization, offline grants and suspend/resume.
await RunApplicationSessionAsync(runtime.EdgeRuntime, cancellationToken);
options, transports, identity, monitor, logger and session lifetime are host dependencies, not objects supplied by this snippet. Keep the runtime alive until the session ends. This package does not log in an avatar or create an authenticated network channel for you.
Startup and lifecycle contract
StartAsync checks identity, binds the peer, publishes capabilities, then attaches connectivity monitoring. Identity/binding/advertisement failure is an error, not successful startup. An initial synchronization error after monitoring attaches can leave the local lifecycle running for hosted recovery; inspect the returned result and underlying status instead of repeatedly calling StartAsync (a second start returns EDGE_ONET_ALREADY_STARTED).
Forward suspension/resumption to EdgeRuntime.SuspendAsync / ResumeAsync. Await DisposeAsync to stop capability renewal, dispose the underlying Edge runtime and release the request/response endpoint. Channel ownership outside that endpoint remains the host's responsibility.
Configuration and diagnostics
| Setting | Default / requirement |
|---|---|
hostedNodeId |
Required nonempty ID |
peerBindingTransport |
Required authenticated bootstrap transport |
capabilityLifetime |
10 minutes |
capabilityRenewalInterval |
5 minutes; positive and shorter than lease lifetime |
capabilityRegistryNodeIds |
Hosted node by default; nonempty distinct registry set |
capabilityRegistryQuorum |
All configured registries; between 1 and registry count |
eligibleProviderCapabilities |
Optional additions to default EdgeSQLite capabilities |
Inspect LastCapabilityAdvertisementError, LastCapabilityAdvertisementWarning, EdgeRuntime.Status and EdgeRuntime.StatusChanged. Preserve error codes/messages in application diagnostics. Signed capability discovery does not remove hosted authorization requirements or grant arbitrary server-provider access.
Security, platforms and limitations
Do not put node private keys, credentials or avatar tokens in a public DNA template. Use platform-secure identity/session storage and trusted host grant-validation keys. Secure-store and offline-validator arguments must be configured together.
Windows/Linux/macOS managed applications and Unity-compatible framework targets still require suitable platform/native dependencies. This NuGet package is not a desktop installer, conductor APK or iOS xcframework. Android shared-conductor integration reports/logs shared-runtime failure and recovers to the built-in conductor by design in its owning platform layer; it is not an ONET transport fallback provided here.
Physical Android/iOS runs, two-device convergence and Linux/macOS Unity IL2CPP execution must be verified separately; successful hosted compilation or packaging is not proof of those tests.
Troubleshooting and further reading
EDGE_ONET_IDENTITY_MISMATCH: the signing identity and authenticated channel must use the same node ID.- Binding failure: verify hosted bootstrap authentication and persisted avatar/device/node scope.
- Advertisement failure: check registry availability, signature/lease validation and configured quorum.
- Synchronization failure: check advertised Full-node service availability and underlying Edge status/errors.
- Offline grants: see the Edge Runtime usage and security guide.
Release inventory lists verified publications and outstanding gates. Current-source documentation may contain functionality not present in older published versions.
| 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 is compatible. 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 was computed. 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 | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.1 is compatible. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | 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.1
- NextGenSoftware.OASIS.Edge.Runtime (>= 1.0.3)
- NextGenSoftware.OASIS.ONET (>= 1.0.3)
-
net8.0
- NextGenSoftware.OASIS.Edge.Runtime (>= 1.0.3)
- NextGenSoftware.OASIS.ONET (>= 1.0.3)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on NextGenSoftware.OASIS.Edge.ONET.Runtime:
| Package | Downloads |
|---|---|
|
NextGenSoftware.OASIS.API.Native.Integrated.EndPoint.Edge
Native facade for the Unity-compatible OASIS Edge Runtime. |
GitHub repositories
This package is not used by any popular GitHub repositories.
NextGenSoftware.OASIS.Edge.ONET.Runtime v1.0.3
Unity-compatible Edge ONODE composition over OASIS Edge Runtime and ONET.
What's new since v1.0.2
- Initial validated package contents and metadata for this release line.
Full changelog
https://github.com/NextGenSoftwareUK/OASIS/commits/master/OASIS Architecture/NextGenSoftware.OASIS.Edge.ONET.Runtime