If you’re using nix-darwins nix.linux-builder (the QEMU-based darwin.linux-builder) on macOS, I’d like to invite you to try vzvm:
It runs nearly the same NixOS builder guest on Apple’s Virtualization.framework instead of QEMU. The main win is Rosetta: x86_64-linux builds are translated rather than software-emulated, which came out ~2.5x faster in my benchmarks. It also boots faster and has a much smaller host closure.
It’s a genuine drop-in replacement — same port, same host key, same nix.linux-builder options. Migrating is two new lines in your config: add the overlay and set nix.linux-builder.package = pkgs.darwin.linux-builder-vz;. Switching back is just as easy. The README and MIGRATING.md have the details.
The longer-term goal is upstreaming into nixpkgs/nix-darwin so a vz-backed builder becomes a supported option. Feedback, bug reports, and benchmark results from other machines are very welcome!
(The code was also written and debugged with the help of LLMs, but it is managed and maintained by humans.)
Fantastic, thank you for putting in the additional work to get it upstream!
Makes onboarding of new users much easier, and brings us a good step forward in terms of UX for developers on arm64 who may want to build & test x86-linux apps locally. I imagine this to be useful for your trainings & appreciate that its available for everyone
The trainings are fully packed with other stuff so we care about making such things easy to use so that it’s not necessary to train people to use it.
This has more been more another fallout of our non-training consulting where organizations pay us to help them scale their software development more and better with Nix(OS). It’s part of our mission (Applicative Systems Group/Nixcademy) to upstream as much as possible/allowed of our work. We are working hard to be an organization whose very existence serves as a means of accumulating open source for society.