What is Sharp Runtime?

A native C++23 library that implements a practical, porting-oriented subset of .NET’s System.* APIs.

Concept5 minute readSource 6d429559

Purpose

Sharp Runtime exists to make C# and .NET source ports more direct. It provides recognizable namespace and type organization, useful behavioral compatibility and native implementations for areas commonly needed by framework and game ports. CNA is its principal verified consumer.

Who it serves

  • C++ developers evaluating a focused System.* compatibility layer
  • Teams porting C# libraries, frameworks or games to native C++
  • CNA contributors and direct Sharp Runtime consumers
  • Contributors implementing APIs, component boundaries and portability behavior

Deliberate non-goals

  • It is not a CLR, JIT, garbage collector or managed assembly loader.
  • It does not execute arbitrary .NET binaries.
  • It does not supply general reflection, DynamicInvoke, P/Invoke, remoting or BinaryFormatter infrastructure.
  • It does not make C# language syntax—including async/await—available in C++.
Compatibility is scoped

Matching a name does not guarantee every overload or every edge-case behavior. Use the component and limitation pages to distinguish implemented, partial, platform-limited and deliberately excluded surfaces.

Verified project shape

FactPinned resultEvidence
Physical components41CMake registrations and boundary validator
Production dependency edges92Generated catalogue and independent validator
Test topology38 executables / 17,131 discovered casesCurrent built GoogleTest executables
Build baselineCMake 3.20+, C++23Root CMake configuration

Where to go next