sharp-runtime Documentation

A C++23 implementation of a practical subset of the .NET System.* namespace, available as focused CMake components.

ℹ About this project
sharp-runtime is not a full .NET runtime or CLR implementation. It is a pragmatic C++23 library that provides System::* API compatibility so that ported C#/XNA game code compiles with minimal changes. Applications can select only the components they need; existing all-in integration remains available. It powers CNA (C++ port of XNA 4.0) and mobile-eggbert.

Quick Start

# Clone the repository (with submodules)
git clone --recurse-submodules https://github.com/openeggbert/sharp-runtime.git
cd sharp-runtime

# Configure, build, and run the complete test suite
cmake -S . -B build -DSHARP_RUNTIME_COMPONENTS=All
cmake --build build --target SharpRuntimeTests --parallel 4
scripts/run_component_tests.sh build

Explore the Documentation

Status Summary

MetricValue
Physical modules40 independently selectable components
Public headers983 headers across the module include roots
Test sources369 module-owned GoogleTest source files
C++ standardC++23
Build outputSelected component targets, with SharpRuntime::All for the complete runtime
Build systemCMake ≥ 3.20
Primary platformLinux / macOS
Additional platformsWindows (partial), Android (SDL3), Emscripten (partial)
LicenseMIT