lima-vm / lima-vm/lima

Improve socket_vmnet performance using github.com/nirs/vmnet-helper

Open
#4,370 3 comments 1 reaction 0 assignees View on GitHub
component/network/vmnet expert roadmap status/needs-investigation
Dominant language
Go
Stars
21.9k
Forks
957
Avg merge
2d 6h
Merged PRs (30d)
53

Description

At KubeCon @nirs and I discussed improving the vmnet performance using https://github.com/nirs/vmnet-helper

Two options:
- Option 1: port vmnet-helper improvements to socket_vmnet
- Option 2: implement the support for vmnet-helper

Either way, the change will be almost transparent to users.
The network names will remain `lima:shared`, `lima:bridged`, and `lima:host`.

## Option 1: port vmnet-helper improvements to socket_vmnet

This plan will port the performance improvements of vmnet-helper to socket_vmnet ,
preserving the current CLI of socket_vmnet.

Feasibility is yet to be investigated.

As this will incur a massive rewrite, it might be also a good chance to consider rewriting the entire code in Swift.

Pros:
- (Almost) no need to touch the code of Lima
- Less confusing to users

Cons:
- Massive change might be needed on socket_vmnet

## Option 2: implement the support for vmnet-helper

`networks.yaml` will have a `vmnetBackend: (vmnet-helper|socket_vmnet|auto)` to switch the backend
until we can fully deprecate the support for `socket_vmnet`.

Pros:
- No need to touch the code of vmnet-helper

Cons:
- Brings more code complexity to Lima
- Confusing to have two backends with very similar names

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.