Fora.Client
20260522.0.0
dotnet add package Fora.Client --version 20260522.0.0
NuGet\Install-Package Fora.Client -Version 20260522.0.0
<PackageReference Include="Fora.Client" Version="20260522.0.0" />
<PackageVersion Include="Fora.Client" Version="20260522.0.0" />
<PackageReference Include="Fora.Client" />
paket add Fora.Client --version 20260522.0.0
#r "nuget: Fora.Client, 20260522.0.0"
#:package Fora.Client@20260522.0.0
#addin nuget:?package=Fora.Client&version=20260522.0.0
#tool nuget:?package=Fora.Client&version=20260522.0.0
description: Quick start and API overview for the Fora Client library.
Fora.Client
Fora.Client is the canonical SDK for .NET federates connecting to an RTI via the IEEE 1516-2025 Federate Protocol. It provides a high-performance, asynchronous bridge between your federate logic and any HLA 4 compliant RTI.
Key Features
- Asynchronous API: Fully built on
async/awaitpatterns for non-blocking simulation logic. - Pluggable Transports: Native support for TCP, TLS, and WebSockets (WS/WSS) to fit any network environment.
- Resilient Session Model: Automatic Reconnect-and-Resume with unacknowledged message replay, ensuring zero data loss during transient network drops.
- Zero-Dependency Core: Lightweight and modular, bundled with all necessary HLA abstractions and encoding helpers.
- Structured Logging: Built-in integration with
Microsoft.Extensions.Loggingfor deep visibility into protocol and simulation events.
Supported HLA Service Groups
ποΈ Federation Management
- Connection, Join, Resign, and Disconnect workflows with full FP session support.
- Synchronization point registration and coordination.
- Federation Save & Restore: Coordinated save/restore state handling.
π’ Declaration Management
- Object and Interaction class publication and subscription.
- Support for hierarchy-aware subscriptions and HLA 4 advisory callbacks.
π¦ Object Management
- Object instance registration, discovery, and lifecycle management.
- Attribute updates and Interaction sending (Best-effort & Reliable).
- Directed Interaction support and per-receiver attribute filtering.
π Ownership Management
- Ownership Transfer: Full support for attribute ownership acquisition and divestiture (push/pull models).
- Ownership query services and unconditional divestiture support.
β±οΈ Time Management
- Time regulation and constraint management.
- Time-stamped message sending (TSO) and causal delivery.
- Support for all advance requests (TAR, TARA, NMR, NMRA, FlushQueue) and message retraction.
πΊοΈ Data Distribution Management (DDM)
- Multi-dimensional region creation, modification, and deletion.
- Region association for attribute updates and interaction routing.
π οΈ Support Services
- Handle/Name Resolution: Bidirectional conversion for Object, Attribute, Interaction, and Parameter classes.
- Metadata Queries: Retrieve upper bounds for dimensions and available dimensions for attributes/interactions.
- Transportation & Order: Query and manage transportation types (Reliable/Best-effort) and order types (Receive/Timestamp).
- Full support for asynchronous update rate queries and RTI version reporting.
Install
dotnet add package Fora.Client --version 20260419.0.0
Quick Start
using Fora.Client;
using Fora.Abstractions;
// 1. Create your Ambassador to receive callbacks
var ambassador = new MyFederateAmbassador();
// 2. Initialize and connect
await using var client = new ForaClient();
await client.ConnectAsync(ambassador, CallbackModel.Immediate, new RtiConfiguration
{
RtiAddress = "127.0.0.1:15164",
Transport = RtiTransportKind.Tcp
});
// 3. Join a federation
var handle = await client.JoinFederationExecutionAsync("MyFederation", "MyFederateType");
Package Content
The package is a self-contained SDK containing:
Fora.Client.dll: The main SDK and protocol orchestrator.Fora.Abstractions.dll: Shared HLA interfaces and exception types.Fora.Encoding.dll: HLA-compliant data element encoders (IDataElement).Fora.Protocol.dll: IEEE 1516-2025 Protobuf contracts.
Version
The package follows the shared Fora family release version:
20260419.0.0
The runtime client version constant remains date-based for lightweight feature checks:
var version = ForaClient.ForaClientVersion; // 20260419
See [[Release Notes]].
Disclaimer
Fora environment is a free academic research toolbox provided βas isβ without warranty or guaranteed support. It is intended solely for research and educational use and is not suitable for production or mission-critical environments. Backward compatibility is not guaranteed. Users assume all risks associated with its use. Feedback may be submitted via the Contact page.
| 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
- Google.Protobuf (>= 3.34.1)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.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 |
|---|---|---|
| 20260522.0.0 | 102 | 5/22/2026 |
| 20260503.0.0 | 101 | 5/3/2026 |
| 20260429.0.0 | 100 | 4/29/2026 |
| 20260426.0.0 | 110 | 4/25/2026 |
| 20260425.0.0 | 101 | 4/25/2026 |
| 20260423.4.0 | 109 | 4/23/2026 |
| 20260421.2.0 | 100 | 4/21/2026 |
| 20260420.1.0 | 102 | 4/20/2026 |
| 20260419.1.0 | 103 | 4/18/2026 |
| 20260418.0.0 | 102 | 4/18/2026 |
| 20260417.0.0 | 104 | 4/17/2026 |
20260522.0.0 - Telemetry Manifest Handle Maps`r`n- Enriches manifest.json with class_handle_map and interaction_handle_map so telemetry consumers can resolve runtime class handles.`r`n- Bumps telemetry manifest compatibility to 1.1.`r`n- Tracks observed object and interaction class handles during telemetry sessions.`r`n`r`n20260513.0.0 - HLA compliance, RTI shutdown & federation lifecycle`r`n- Implements HLA-compliant RTI shutdown (PORT-HANDLING-4).`r`n- Enhances federation lifecycle and Save/Restore compliance.`r`n- Implements robust MockRti lost-federate recovery.`r`n`r`n20260504.0.0 - RTI Console exit/quit shortcut`r`n- Adds `q` as a shorthand alias for `exit`/`quit` in the RTI Console.`r`n`r`n20260503.0.0 - Group Chat DDM and error observability`r`n`r`n20260429.0.0 - Telemetry Phase 1 completion`r`n- Adds the new Fora.Telemetry subsystem with fixed-width .fort logging, manifest output, bounded buffering, and nested-safe sub-phase accumulation.`r`n- Adds telemetry-aware client composition, public send/update path instrumentation, memory sampling, and Telemetry build gating.`r`n- Adds ambient encoder sub-phase timing in Fora.Encoding and end-to-end telemetry validation/perf harness coverage.`r`n`r`n20260426.0.0 - Transport thread-safety and Chat lifecycle fix`r`n- Serializes FP transport SendAsync via SemaphoreSlim (TcpFpTransport, TlsFpTransport, WebSocketFpTransportBase); concurrent NetworkStream writes were corrupting the FP frame stream and causing ResignFederationExecution timeouts.`r`n- Fixes Chat MainViewModel.OnLocalUserReady to propagate the simulation CancellationToken to UpdateAsync, preventing a post-disconnect UI-thread write from racing the background resign.`r`n`r`n20260424.0.0 - Complete Support Services coverage (IEEE 1516-2025 Section 10)`r`n- Full Section 10.2-10.60 client wrapper coverage: handle lookup, handle normalisation, exception/advisory switches.`r`n- EnableCallbacks / DisableCallbacks delivery gating in FpCallbackWorker (still ACKs frames while gated).`r`n- LBTS/GALT federation-scoped index + dirty-federation grant scheduling; TSO queue replaced by heap for O(log n) head inspection.`r`n- Typed HLA exceptions for invalid handles, unpublished send/update, duplicate time-mode enables, and out-of-order advance requests.`r`n- Retired legacy hla.proto and Fora.Core.Proto escape hatch; FP protobuf is the sole wire format.`r`n- 266/266 integration tests green.`r`n`r`n20260423.4.0 - DDM coverage (IEEE 1516-2025 Section 9)`r`n- RequestAttributeValueUpdateWithRegions and region-aware UnassociateRegionsForUpdates added to IForaClient.`r`n- RegisterObjectInstanceWithRegions now correctly preserves attribute-region associations in the simulator update-routing path.`r`n- Full Section 9.2-9.13 integration coverage.`r`n- Federation Management: Complete 4.2-4.35 coverage, save/restore status and abort services, and peer resign notifications.`r`n- Declaration Management: Complete 5.2-5.17 coverage, including subset unpublish/unsubscribe and directed-interaction variants.`r`n- Object Management: Complete 6.2-6.33 coverage, object instance name reservation/release, and transportation type change/query.`r`n- Ownership Management: Complete 7.2-7.19 coverage, acquisition-if-available, release denied, and divestiture-if-wanted workflows.`r`n- Time Management: Complete 8.2-8.26 coverage, including Flush Queue Grant and Change Default Attribute Order Type.`r`n- DDM: Complete 9.2-9.13 coverage, region-aware attribute updates, and interaction routing.`r`n- Support Services: Complete 10.2-10.60 coverage, including callback enable/disable delivery control.`r`n- Fixed enum mapping for federation save/restore status callbacks.`r`n- Extended integration test suite with 140+ new coverage tests.