How mirrord Now Runs Natively on Windows
mirrord drops its WSL requirement and now runs natively on Windows, using manual DLL injection and deep IDE integrations instead of LD_PRELOAD.
mirrord lets developers run a local process inside a live Kubernetes cluster, but for a long time Windows users had to rely on WSL to use it. That setup worked but came with real costs: a second environment to maintain, sync issues between host and Linux distro, and integrations that rarely matched native parity. The team set out to make mirrord run natively on Windows instead.
The core challenge was injecting the mirrord-layer, the component that intercepts networking, file, and environment calls. Unix systems solve this cleanly with LD_PRELOAD or DYLD_INSERT_LIBRARIES, but Windows has no equivalent. The team worked around this by launching processes suspended, injecting the mirrord-layer DLL on a separate thread, waiting for a named-event signal that hooks are installed, and only then resuming execution. For child processes, hooking the internal CreateProcessInternalW function let a single hook cover all of Windows' process-creation APIs.
The hardest part was reaching IDE plugins. VS Code was relatively straightforward since it can pause a process before user code runs. JetBrains required more inventive solutions: swapping the JDK so java.exe is actually mirrord, injecting a custom Gradle init script for Gradle runs, and matching JDWP debug ports against netstat output to attach during debugging. Rider and .NET needed similar command-line rewriting tailored to their own APIs.
For engineers, this work illustrates how deeply platform-specific low-level differences can complicate developer tooling. The absence of a single Windows injection mechanism forced bespoke solutions for nearly every launch scenario, requiring intimate knowledge of process management, debugging internals, and IDE build systems to achieve native parity with the existing Linux and macOS experience.