Fora.Client 20260522.0.0

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

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/await patterns 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.Logging for 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 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
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.