What makes it fast is support for modern NIC features that improve performance significantly, similar to those supported by Apple's in-kernel NAT (vmnet) but implemented in userspace. I've made changes to the guest kernel to implement these while working around limitations in Apple's Virtualization.framework. I'm not actually sure why it's slightly faster than vmnet in the host-to-guest direction (30 vs. 25 Gbps), but I'll take it.
Some snapshots of my journey working on the network stack:
https://twitter.com/kdrag0n/status/1606461436863352832
https://twitter.com/kdrag0n/status/1604288427306160128
If that's still an issue, then please figure out a way to make that seamless.
It sounds like it has a ton of great features.
I guess virtualization is its own domain, much like video encoders, cryptography, and systems programming.
Feels like the gateway to those is C and assembly.
Recent reads include Mac OS on Docker, rooted John Deere tractors, jart's Blink work, and now this :)
Claims are good, proofs are key (and I'm curious how it will separate itself from LIMA :)
I sincerely wish you all the best and as said, really looking forward to the first set of demos (videos/streams)
- Fast networking: 30 Gbps! vs. 150 Mbps with Docker VPNKit. Full VPN compatibility, IPv6, ping, ICMP and UDP traceroute, and half-open TCP connections. (Future work: transparent proxies)
- Bidirectional filesystem sharing: fast VirtioFS to access macOS from Linux, but there's also access to the Linux filesystem from macOS. This can help with performance: for example, you could store code in Linux and edit it from macOS with VS Code (which can take the performance hit of sharing), so the container runs with native FS speed.
- Not limited to Docker or Kubernetes. You can run multiple full Linux distros as system containers (like WSL) so they share resources.
- Fast x86 emulation with Rosetta
- Bidirectional CLI integration like WSL
- Much lower background CPU usage. Only ~0.05% CPU usage and 2-5 idle wakeups per second — less than most apps, while Docker wakes up ~120 times per second. Made possible with low-level kernel optimizations. Also, no Electron!
- Better solutions to other problems that can occur on macOS: clock drift is corrected monotonically, dynamic disk size, and more I'm working on now. Will look into memory usage too, although I can't guarantee a good fix for that.
- No root needed
Planning to release it as a paid app later this month. Not OSS, but I think the value proposition is pretty good and there will be a free trial. Not sure about pricing yet. (Let me know if you have any thoughts on this!)
If anyone is interested, drop me an email (see bio) and I'll let you know when this is ready for testing, likely within a week or two at most :)
Also, feel free to ask questions here or let me know if there are other warts you'd like to see fixed.