I'm honestly not sure how pricing and licensing will work yet, but there will be some way to try it for free. Maybe something like Docker Desktop: free for personal use, license required for companies? That seems like a risky bet as an indie dev.
There's also the whole question of one-time purchases vs. subscriptions. Subscriptions seem like the optimal model for this, so I'm not sure how to accommodate people who just don't like them.
Would love to hear if you have any thoughts on how it could be done to reach as many users as possible.
That's how it works currently.
Then once the business is viable, the legal budget will be bigger...
My company is just large enough to require Docker Desktop licensing, and a per-seat continuous drip is too much for us. So, if you're looking to differentiate, having a buy-out option that gives permanent access to at least a range of versions would be big.
FontAwesome, TablePlus, and some others I've paid for multiple seats on do this and it's great. Some we just paid for the one year, and others we were able to see enough ongoing value to keep paying on the subscriptions.
But also, the company should just supply the tools.
The phrase is gold. I understand from this that companies which provide tools and infrastructure for professional developers must not only attract the devs themselves, but also (and maybe more importantly) market/advertise and sell to the "suits", their managers and employers.
Not sure if that's what you intended, but I'm now seeing the value of glossy Gartner magic quadrant BS, and thinking how to apply it in my own projects.
I would have loved to have HashiCorp Vault Enterprise for instance, but the math just wasn't working out to get a feature you can get by... just running more of them.
If spending was our thing perhaps we'd have gotten into woodworking, or photography, or whatever it is that can take a good chunk of change to get into deeply instead.
Also, some developer tools want outrageous prices that are in no way proportionate to their value if you compare them to some standard paid tool (i.e. a JetBrains IDE)
Enabling Rosetta can have a minor performance hit on memory-intensive workloads in the VM (not only x86 ones) because of TSO memory ordering, so it'll be optional. Hypervisor.framework doesn't have an API for third-party VMMs to set this and doesn't seem to let the VM modify ACTLR_EL1 either, so unless I can find a private API for it, I'm stuck with Virtualization.framework's limitation of Rosetta being either on or off for the entire VM at boot time.
Memory usage is probably the biggest uncertainty right now. It should be at least slightly better, but I'm not sure if I can improve it much more due to Virtualization.framework limitations. Still looking into it.
Networking is implemented with my custom userspace proxy for VPN compatibility. Servers are forwarded to localhost automatically, but you can't connect to the VM by IP because the network doesn't exist from the host's perspective. I've ran into too many issues with Apple's NAT setup and host-only networking is a private API, so this is postponed for now. Should be able to do better with root.
Graphics won't be supported at launch, but I could look into it later if there's interest. Not sure how feasible acceleration will be if I can't find a way around having to use Virtualization.framework.
Let me know if there's anything specific that I missed!
> Planning to release this as a paid app in January. Not OSS, but I think the value proposition is pretty good and there will be a free trial. Not sure about pricing yet.
> If anyone is interested, drop me an email (see bio) and I'll let you know when this is ready for testing :)
Are there some new Linux drivers involved, or is this "just" a better tuned VM?
(Also, by "fast VirtioFS", I meant the same VirtioFS implementation tested in the article because it's faster than other solutions — sorry if it wasn't clear.)
- Fast networking: 30 Gbps! vs. 150 Mbps with Docker VPNKit. Full VPN compatibility, IPv6, ping, ICMP and UDP traceroute, and half-open TCP connections.
- Bidirectional filesystem sharing: fast VirtioFS to access macOS from Linux, but also a mount to access the Linux filesystem from macOS. This setup 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
- 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, and more I'm working on now. Will look into memory usage too, although I can't guarantee a good fix for that.
Planning to release this as a paid app in January (not OSS, sorry). Not sure about pricing yet. If anyone is interested, drop me an email (see bio) and I'll let you know when this is ready for testing :)