Back to browse
GitHub Repository

framework for emulating devices in userspace

228 starsC

Device emulation outside QEMU using vfio-user and libvfio-user

by tmakatos·Jun 22, 2026·1 point·0 comments

AI Analysis

●●SolidNiche GemBig Brain

SPDK uses this for NVMe emulation across multiple VMs without QEMU modifications.

Strengths
  • UNIX socket protocol lets device emulation run in separate processes from VMM
  • Real production adoption with SPDK NVMe controller implementation
  • Reusable device implementations across multiple VMMs without code changes
Weaknesses
  • Virtualization device emulation is a known category with QEMU, vhost-user alternatives
  • Requires kernel headers and meson build system, adds integration complexity
Target Audience

Virtualization engineers, VMM developers, cloud infrastructure teams

Similar To

QEMU · vhost-user · VFIO

Post Description

VMMs like QEMU run the entire emulation inside a single process. That works fine until you want an implementation that doesn't align with QEMU's runtime environment, such as SPDK to handle multiple VMs' virtual disks and multiple physical disks from a single process. For this, we've built vfio-user, a protocol modelled after the kernel's VFIO framework that lets device emulation run in a separate process. In vfio-user, there's the vfio-user client, which runs in the VMM, and the vfio-user server, which is the separate process where the device emulation runs. We also built libvfio-user, the vfio-user server-side library, which facilitates implementing a PCI device in C or Python (Rust should be possible as well). This makes it easy to quickly prototype devices without modifying QEMU and to reuse the same device implementation across multiple VMMs.

Real-world use cases: - emulate an NVMe PCI controller in SPDK - emulate an RDMA NIC for testing - emulate an AI accelerator for testing

Repo: https://github.com/nutanix/libvfio-user

Similar Projects

EmbedIQ – Claude Code Compliance Config for HIPAA/PCI-DSS/SOC2

Config generator for Claude Code, but configuration files alone cannot ensure actual regulatory compliance.

Solve My Problem
asqpl
202mo ago