mrkeyoor.com_
Wed 11 Nov 06:24 UTC
Dev Toolsevaluationupdated 11 Nov 2026

mxc review

Microsoft eXecution Container, or MXC, is an embedded SDK for running untrusted code through host-specific containment backends on Windows, Linux and macOS. Its Rust, .NET and Node SDKs let applications specify the workload command and containment rules.

+28stars / 7d
Verdict

Our MXC source run at commit e157fa4 installed 170 dependencies in 40 seconds, then stopped at compilation in both build and test steps. It did not assess the later v1.0.1 release or packaged SDK operation. Consider the embedded SDK model for desktop editors and agents if you can validate the chosen backend on every supported host. This run provides no successful contained workload or security assessment, and its compiler failure does not establish that packaged SDKs are broken.

We ran it

Lab card: what happened when we ran mxcScreenshot of mxc (github.com/microsoft/mxc)
Install✓ · 40s170 packages
Build✗ · 51s
Tests✗ · 29sran, no count parsed
Repo2300 files~303,580 lines of source · 17.9 MB · 21 CI workflows · tests dir

Answers from our run

Does mxc build from source?

Dependencies installed in 40 seconds (170 packages), and the build failed. We cloned commit e157fa4 into a clean Debian container with 3 CPUs and no project-specific setup.

Do mxc's tests pass?

No. The project's own test command exited unsuccessfully after 29 seconds, and its output did not expose an individual test count.

Who should not use mxc?

Teams requiring identical enforcement across platforms without backend-specific validation: the README describes network host filtering as backend dependent.

What are the alternatives to mxc?

Bubblewrap, gVisor. Our MXC source run at commit e157fa4 installed 170 dependencies in 40 seconds, then stopped at compilation in both build and test steps.

SetupN/AThe source run failed at compilation, but actual host and toolchain versions were not established and packaged SDK installation was not evaluated.
DocsN/AThe supplied README explains packages, backends, audit risks and telemetry, but its integration instructions were not reproduced sufficiently to support a numerical usability rating.
CommunityN/AThe November 11 repository activity does not establish support responsiveness, maintainer capacity or sustained maintenance reliability.
MaturityN/ANo contained workload, backend security evaluation, packaged deployment or later v1.0.1 behavior was validated in the recorded run.

Discussed on

  1. hnMXC - a sandboxed code execution system196 points
  2. hnMicrosoft Execution Containers (MXC)3 points

Who it’s for

Developers embedding code execution in editors or agents across desktop platforms.
Teams prepared to validate filesystem and network restrictions on each backend and host they support.
Application authors who want execution controlled through an embedded SDK.

Who it’s NOT for

Teams requiring identical enforcement across platforms without backend-specific validation: the README describes network host filtering as backend dependent.
Developers using audit mode to discover policies for hostile programs: Microsoft warns that it turns off all sandbox security for the analyzed workload.
Organizations unable to accept required Windows diagnostic collection from official Microsoft builds using the development 1.1.0-alpha request contract.

Setup reality

Our sandbox installed MXC commit e157fa4 in 40 seconds with 170 dependencies. The build failed with exit 101 after 51 seconds, and the test step failed with exit 101 after 29 seconds. Both log tails show windows-future 0.3.2 calling windows_threading::submit, which the compiler could not find. The supplied logs do not establish the cause.

The README directs consumers to packaged SDKs rather than cloning the repository. Packaged SDK operation was not verified in our run.

The supplied README names Rust 1.93, Node.js 24 or later, npm and backend-specific prerequisites for source builds. These are documented requirements, not observed sandbox versions. Our October 9, 2026 configuration had 3 CPUs, 12 GB RAM and image label lab-rust:1. That label establishes neither the actual toolchain nor operating-system version.

The supplied release metadata identifies v1.0.1, dated October 17, 2026. Our October 9 run predates that release and does not assess it.

Microsoft eXecution Container embeds the sandbox launcher in your application. That model may suit an editor or agent that executes code across desktop platforms. Our source run stopped at compilation, so the adoption decision still requires checking your intended SDK and backend on each supported host.

The SDK embeds execution in your application

The MXC README describes Rust, .NET and Node SDKs. Your application supplies the container type, containment rules and workload command. MXC validates the request, selects a backend and launches the workload.

Persistent containers have provision, start, execute, stop and deprovision operations. An application using that lifecycle needs to decide when to stop a workspace and what to preserve. Consider MXC when those operations belong in application code and you are prepared to validate the resulting access restrictions.

What happened when we ran it

Our sandbox installed MXC commit e157fa4 in 40 seconds with 170 dependencies, then failed the build after 51 seconds and the test step after 29 seconds. Both failures returned exit 101. The October 9, 2026 run used 3 CPUs, 12 GB RAM and image label lab-rust:1. That label does not establish actual runtime or operating-system versions.

Both log tails show error E0425: windows-future 0.3.2 calls windows_threading::submit, which the compiler cannot find. Compilation ends with 16 errors in windows-future. The test step stopped at compilation too, so these results contain no passing-test count. The excerpts do not establish why the function was unavailable or support prescribing a dependency pin.

The checkout had 2,300 files, about 303,580 source lines and a 17.9 MB footprint. The scan found 21 CI workflow files and a tests directory, with no Dockerfile detected. Those observations establish neither upstream CI success nor a completed isolation check. The recorded timings do not measure workload speed.

Packaged SDKs need a separate evaluation

The README directs application developers to install an SDK through their package manager rather than clone the repository. The Node and .NET packages include native runtime assets. The Rust crate builds the MXC SDK, engine and selected backends into the consuming application.

Our failed repository build leaves those consumer routes unverified. The supplied source instructions name Rust 1.93, Node.js 24 or later, npm and backend-specific platform prerequisites. These requirements are separate from the versions actually used in the lab, which the supplied configuration does not establish.

The supplied release metadata identifies v1.0.1, dated October 17, 2026. It postdates our October 9 run at commit e157fa4. That run does not establish whether v1.0.1 builds or runs successfully.

Check policy and diagnostics on each host

The README lists ProcessContainer as the Windows default, Bubblewrap as the Linux default and Seatbelt as the macOS default. It describes network host filtering as backend dependent. A shared request format therefore does not establish equal enforcement across hosts.

Issue #1725, opened November 11, 2026, reports that Seatbelt denial capture can mark an incomplete report complete when macOS drops log messages. This is an upstream reporter's account about diagnostics, separate from our compilation failure. It supports checking whether a deliberately forbidden operation was denied rather than relying only on a report's completeness flag. We did not reproduce the issue.

Audit mode and telemetry require explicit choices

Microsoft warns that --audit turns off all sandbox security for the workload being analyzed. Never use it to run untrusted code. The README describes audit mode as a way to reconstruct a ProcessContainer policy for a trusted tool on supported Windows releases. Use trusted workloads for that process, then review the resulting grants.

Official Microsoft builds send required diagnostic data for the development 1.1.0-alpha request contract. Published 0.9.0-alpha and 1.0.0 requests keep optional telemetry. The README says that optional collection requires run opt-in, Windows user consent and administrative permission. Required collection needs no user consent or per-request opt-in, and administrative policy does not block it.

Build configuration matters too. The README says local open-source debug builds are not configured to route telemetry to Microsoft. Windows release builds from source use the bundled signed telemetry component and are routed unless built without routing using the documented configuration. Telemetry is a no-op on non-Windows platforms. Check the request contract and distribution you intend to ship before accepting the defaults.

Bubblewrap and gVisor fit different integration points

Bubblewrap constructs Linux sandboxes and leaves security policy to its caller. Consider it directly when Linux is your only target and your application will construct and validate the sandbox arguments. Its README says the protection provided depends on those arguments.

gVisor is an application kernel with an OCI runtime called runsc. The runsc runtime integrates with Docker and Kubernetes. Consider it when sandboxed execution belongs in an existing container platform.

These recommendations concern documented integration models. We measured neither alternative and have no comparative performance or isolation results.

What to require before adoption

The supplied GitHub metadata records a last push on November 11, 2026. That establishes later repository activity, without showing that our October compiler failure is fixed. Support responsiveness, production behavior and maintenance reliability remain unassessed.

The README explains consumer packages, backend choices, audit risks and telemetry boundaries. We assign no numerical documentation rating because the integration instructions were not reproduced sufficiently to support a usability judgment.

Before adopting MXC, require your intended SDK to launch a harmless command and deny a forbidden file read on each actual host you support. Record the SDK version, backend and host for each result. These are proposed acceptance checks, not tests completed in our run.

Alternatives

ProjectWhat it isPick it when
BubblewrapA Linux sandbox-construction tool whose caller defines the security policy.Consider it when Linux is your only target and your application will construct and validate the sandbox arguments directly.
gVisor gh↗An application kernel with an OCI runtime that integrates with Docker and Kubernetes.Consider it when sandboxed execution belongs in an existing Docker or Kubernetes environment.

Sources

  1. Microsoft MXC README
  2. Seatbelt denial-capture report
  3. Bubblewrap README
  4. gVisor README
  5. MXC repository metadata

More dev tools reviews

folly · universal-android-debloater-next-generation · OpenSandbox · You-Dont-Know-JS · evilginx2 · google-colab-cli · the whole board →