Components
go-virtio is a set of dependency-free Go modules (standard library
only, CGO_ENABLED=0) layered around one shared infrastructure package
and one narrow Transport interface. Each driver owns its spec-level
device class and consumes common for everything transport-related.
Core
| Module |
Import path |
What it does |
common |
github.com/go-virtio/common |
Transport-agnostic infrastructure: PCI capability walker, modern-config register layout, split-virtqueue + descriptor chaining, device-class IDs, and the Transport / PCIConfigReader / BARMemoryAccessor / PageAllocator interfaces. |
Drivers
| Module |
Import path |
Device (DID) |
net |
github.com/go-virtio/net |
virtio-net (0x1041) |
rng |
github.com/go-virtio/rng |
virtio-rng (0x1044) |
vsock |
github.com/go-virtio/vsock |
virtio-vsock (0x1053) |
blk |
github.com/go-virtio/blk |
virtio-blk (0x1042) |
console |
github.com/go-virtio/console |
virtio-console (0x1043) |
balloon |
github.com/go-virtio/balloon |
virtio-balloon (0x1045) |
fs |
github.com/go-virtio/fs |
virtio-fs (0x105A) |
input |
github.com/go-virtio/input |
virtio-input (0x1052) |
sound |
github.com/go-virtio/sound |
virtio-sound (0x1059) |
GPU
| Module |
Import path |
What it does |
gpu |
github.com/go-virtio/gpu |
virtio-gpu (0x1050): 2D framebuffer + virgl 3D + the gpu/soft3d software rasterizer. |
venus |
github.com/go-virtio/venus |
Vulkan-over-virtio (Venus): vk.xml→Go serializer/generator + ring transport. |
Validation
| Module |
Import path |
What it does |
validate |
github.com/go-virtio/validate |
Real-hardware (TamaGo + QEMU) validation harness and a pure-Go virglrenderer/Venus vtest client. |