What is Sharp Runtime?
A native C++23 library that implements a practical, porting-oriented subset of .NET’s System.* APIs.
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
| Fact | Pinned result | Evidence |
|---|---|---|
| Physical components | 41 | CMake registrations and boundary validator |
| Production dependency edges | 92 | Generated catalogue and independent validator |
| Test topology | 38 executables / 17,131 discovered cases | Current built GoogleTest executables |
| Build baseline | CMake 3.20+, C++23 | Root CMake configuration |