About kayfabe
What it is
kayfabe lets a virtual machine use your NVIDIA graphics card with NVIDIA's own driver, while the computer you are sitting at keeps using the same card. It is a QEMU device written in Rust. To the VM it looks like an NVIDIA GPU, and behind it the real work runs on your real card.
Under the hood, kayfabe plays the part of the GPU's firmware processor, the GSP, which current NVIDIA drivers send their commands to. The manual's Technical FAQ explains how that works and why it is built this way.
Why it exists
Every common way of giving a VM an NVIDIA card takes something from you. VFIO hands the whole card to one VM. NVIDIA's vGPU needs a supported GPU and a licence. API forwarding leaves the card with the host, but the VM needs a custom kernel module. kayfabe tries to keep the card with the host, run NVIDIA's own driver in the VM, and ask for no licence server. How it differs lines the options up.
Where it stands
Research. It runs real programs, but there is no installer, no public binary, no stable interface and no security audit, and Windows is rough: sleep and wake do not survive. What works today has the straight list, and the README carries the current status. A short note on the security model is on the Security page.
Licence
Dual-licensed Apache-2.0 OR GPL-2.0-or-later. The repository's LICENSE lists the exceptions, and a QEMU binary built from the tree is not yet distributable under the GPL. Read Credits and notices before you redistribute anything.
Related projects
Other people are working on the same problem. They are credited on Credits and notices, for anyone who wants to compare approaches.
Talk to the project
The code is at github.com/reindertpelsma/kayfabe. Questions, bugs and gaps in the docs go to the issue tracker. A suspected vulnerability goes through GitHub, privately, as the Security page describes.
About this site
The manual's source is in docs/howto/. Every page has a "View and edit source on GitHub" link.