Repository navigation
Add macOS ARM64 NuGet packages - #293
Open
jsturtevant wants to merge 5 commits into
Open
jsturtevant wants to merge 5 commits into
jsturtevant wants to merge 5 commits into
Conversation
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 11, 2026 21:40
9c101d3 to
e362b9a
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
2 times, most recently
from
November 11, 2026 22:43
f4cd6db to
69c4dcd
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
2 times, most recently
from
November 12, 2026 03:27
c727282 to
f738842
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 03:33
f738842 to
1825ebe
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
2 times, most recently
from
November 12, 2026 05:55
6a4829b to
0c25d8b
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 17:15
0c25d8b to
dbb83b0
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
2 times, most recently
from
November 12, 2026 22:04
5fa321a to
e63fdf9
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 22:22
e63fdf9 to
b1d9e91
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 22:37
b1d9e91 to
4798a35
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 22:47
4798a35 to
7f5af13
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 23:11
7f5af13 to
8b79ac3
Compare
jsturtevant
added a commit
that referenced
this pull request
Nov 12, 2026
Run macOS SDK sandboxes in a signed Rust surrogate so Python and dotnet do not need to be re-signed. Follow HIP-0004 with one sandbox per surrogate, a bounded reusable pool, postcard frames over an inherited socket, proxied tools, and file-backed snapshots. This is developer-only support. macOS SDKs use this path by default; Linux Rust callers can opt in to the process API. Other SDK defaults stay unchanged. Windows transport is not included. Native stack: #296 → #291 (Python wheels) → #293 (NuGet packages). --------- Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 12, 2026 23:56
448e68b to
3091ff7
Compare
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
Incomplete Rust dependency tracking and guest asset staging can leave managed builds and examples using outdated native libraries or guest code.
2 open issues
What changed in this PR
Adds developer-only macOS ARM64 support to the .NET NuGet distribution, building on the signed helper so applications do not need hypervisor entitlements.
Changes:
- Packages macOS native assets and architecture-specific AOT guests, with portable OS/CPU resolution.
- Adds installed-package execution tests and isolates locally built packages from cached or published versions.
- Integrates macOS HVF testing and artifact collection into CI and publishing.
| File | Description |
|---|---|
src/sdk/dotnet/README.md |
Documents experimental Apple Silicon support. |
src/sdk/dotnet/Justfile |
Stages guests by architecture and clears package-test caches. |
src/sdk/dotnet/core/Tests/HyperlightSandbox.PackageTests/PackageInstallationTests.cs |
Tests execution through installed packages. |
src/sdk/dotnet/core/Tests/HyperlightSandbox.PackageTests/nuget.config |
Routes Hyperlight packages to the local feed. |
src/sdk/dotnet/core/Tests/HyperlightSandbox.PackageTests/HyperlightSandbox.PackageTests.csproj |
Isolates the package-test restore cache. |
src/sdk/dotnet/core/PInvoke/SafeNativeMethods.cs |
Resolves macOS libraries and portable runtime paths. |
src/sdk/dotnet/core/PInvoke/HyperlightSandbox.PInvoke.csproj |
Packages the macOS library and selects platform-specific build outputs. |
src/sdk/dotnet/core/NativePlatform.cs |
Provides shared OS/CPU runtime identifiers. |
src/sdk/dotnet/core/Guest.Python/PythonGuestModule.cs |
Resolves Python guests using portable runtime identifiers. |
src/sdk/dotnet/core/Guest.Python/HyperlightSandbox.Guest.Python.csproj |
Packages separately staged x64 and ARM64 Python guests. |
src/sdk/dotnet/core/Guest.JavaScript/JavaScriptGuestModule.cs |
Resolves JavaScript guests using portable runtime identifiers. |
src/sdk/dotnet/core/Guest.JavaScript/HyperlightSandbox.Guest.JavaScript.csproj |
Packages separately staged x64 and ARM64 JavaScript guests. |
.github/workflows/publish.yml |
Collects macOS artifacts and checks package contents. |
.github/workflows/dotnet-macos.yml |
Builds and tests installed packages on an ARM64 HVF runner. |
.github/workflows/ci.yml |
Adds the reusable macOS package workflow to CI. |
Review effort: Balanced
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 13, 2026 00:36
04f143b to
777df27
Compare
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
jsturtevant
force-pushed
the
jsturtevant-macos-dotnet-packages
branch
from
November 13, 2026 07:51
777df27 to
ebabb33
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Package the macOS ARM64 native library, signed developer helper, and AOT guests alongside the existing Linux and Windows assets. Resolve native libraries and guests by portable OS/CPU identifiers.
Installed NuGet packages run on HVF before release assets are combined. The helper owns the hypervisor entitlement, so dotnet and application executables do not need to be re-signed. macOS support is developer-only.
Depends on #291; native stack: #296 → #291 → #293.