TedToolkit.CppBindings.Occt.Runtime 2026.9.15

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

TedToolkit.CppBindings.Occt.Runtime

OCCT-specific .NET 8 ownership and exception interpretation, built on the provider-neutral Runtime. This package has no generated declarations or native imports. All its public types use TedToolkit.CppBindings.Occt.

Consume

This identity is unreleased; generated OCCT wrappers reference the locally built project/package. Applications acquire owners through generated factories. Opt into TedToolkit.CppBindings.Analyzers directly; this Runtime does not embed or transitively deliver analyzer assets.

Native ownership and borrowing

  • IStandard_Transient marks an exact-layout unmanaged transient projection.
  • Handle<T> owns one already-acquired intrusive reference. Its generated-only constructor adopts a non-null native address and matching non-throwing release callback without retaining it again. Assignment aliases the same owner; disposal/finalization calls the callback at most once.
  • Lowercase handle<T> is pointer-sized non-owning storage matching native opencascade::handle<T>. Its only public member is non-owning ref T Value; it has no ownership, constructor, conversion, raw-pointer, retain, release, or disposal API.

Handle<T>.Value checks disposal; lowercase storage does not supply owner liveness checks. Both references remain subject to the original C++ owner's lifetime and invalidation rules. Neither access extends native lifetime, and neither permits use after or concurrently with disposal. Keep the producing native module loaded until all owned callbacks have completed.

Handle<T> implements generic ICppOwner<T> for access metadata, but generated OCCT operations use separate direct Handle<T> and in handle<T> receiver overloads, not a common interface receiver. The lowercase layout does not implement ICppOwner<T>.

Native errors

NativeErrorProjection.ThrowIfFailed is a thin generated-code facade over Shared projection. Shared copies UTF-8 diagnostics, consumes the carrier exactly once, and owns common kinds 1 through 8 and 255. OCCT extends that contract only for local kind 9, which maps Standard_Failure to OcctFailureException; ordinary std::exception remains Shared kind 8 and becomes NativeStandardException.

IOcctException extends the common INativeException diagnostic contract for OCCT-local failures. Native stack text is distinct from managed Exception.StackTrace. Generated-only projection/constructors are diagnostic hooks, not a security boundary or an alternative handwritten calling convention.

Verify locally

From the repository root:

dotnet run --project tests/TedToolkit.CppBindings.Runtime.Tests/TedToolkit.CppBindings.Runtime.Tests.csproj -c Release -- --report-trx
dotnet build tests/TedToolkit.CppBindings.Runtime.NativeIntegration/TedToolkit.CppBindings.Runtime.NativeIntegration.csproj -c Release

The managed suite checks Runtime contracts; the native integration runner consumes the two libraries from tests/native/handle-fixtures through that fixture's CMake/CTest gate. Native OCCT generated binding proof remains a separate generator/Windows integration gate.

Repository overview · Platform architecture

Product Compatible and additional computed target framework versions.
.NET 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. 
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
2026.9.15 33 9/15/2026
2026.9.14 48 9/14/2026