Musa.Runtime 0.6.0

Requires NuGet 2.5 or higher.

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

Musa.Runtime - Universal C++ RunTime Library

Actions Status Downloads LICENSE Visual Studio Windows Platform


Overview

Musa.Runtime is a Microsoft MSVC runtime library adapted for Windows kernel-mode development. Built on Musa.Core, it carries forward the architecture pioneered by ucxxrt.

Core goal: Give kernel developers the same C++ experience that application developers enjoy.

Design highlight: Inspired by Docker's layered filesystem, Musa.Runtime uses an overlay mechanism to selectively replace files on top of the original MSVC SDK source — no fork, no independent copy to maintain. See Architecture for details.

Quick Start

1. Install

NuGet (recommended):

<ItemGroup>
  <PackageReference Include="Musa.Runtime">
    <Version>0.5.1</Version>
  </PackageReference>
</ItemGroup>

Or right-click your project → Manage NuGet Packages → search Musa.Runtime → Install.

Manual import: Download from Releases and unzip:

<PropertyGroup>
  <MusaRuntimeOnlyHeader>false</MusaRuntimeOnlyHeader>
</PropertyGroup>
<Import Project="..\Musa.Runtime\config\Musa.Runtime.Config.props" />
<Import Project="..\Musa.Runtime\config\Musa.Runtime.Config.targets" />

2. Rename DriverEntryDriverMain

Musa.Runtime provides its own DriverEntry (which handles CRT initialization). Your driver entry point must be renamed to DriverMain:

EXTERN_C NTSTATUS DriverMain(PDRIVER_OBJECT DriverObject, PUNICODE_STRING RegistryPath)
{
    DriverObject->DriverUnload = [](auto obj) { MusaLOG("Unload."); };
    // Your code here
    return STATUS_SUCCESS;
}

3. Use C++ in Kernel

#include <vector>
#include <string>
#include "kext/kallocator.h"

void Example()
{
    std::vector<std::string, kallocator<std::string>> vec;
    vec.push_back("hello from kernel");
}

⚠️ kallocator defaults to PagedPool. When used at DISPATCH_LEVEL or above, specify NonPagedPool explicitly.

Features

Feature Status Notes
x64 Primary platform
ARM64 ⚠️ Experimental
New / Delete Backed by ExAllocatePoolWithTag
C++ Exception (/EHa, /EHsc) IRQL ≤ APC_LEVEL
Static Object Construction Runs at driver load time
SAFESEH / GS Buffer security check
STL (OneCore / CoreCRT) Full container / algorithm support
thread_local Compiler-level limitation (fs/gs register access)

Documentation

Document Content
📐 Architecture Design philosophy (overlay pattern), component architecture, kernel-mode adaptations
📝 Developer Guide Installation, STL usage, exception handling, kallocator, troubleshooting
🔧 Build System Project structure, build process, version management, publish pipeline
🔬 Overlay Diff Report Per-file differential analysis of all overlay files

Build from Source

> git clone --recurse-submodules https://github.com/MiroKaku/Musa.Runtime.git
> cd Musa.Runtime
> .\BuildAllTargets.cmd

Prerequisites: Visual Studio 2026 (latest) + WDK

References

Product Compatible and additional computed target framework versions.
native native is compatible. 
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
0.6.0 99 5/1/2026
0.5.1 705 8/26/2025

Upgrade UCRT to 10.0.28000.0, remove 10.0.22621.0