Users of virtualization may struggle with keeping their guest configuration optimal. And while libvirt is perfect tool for its job, it merely just do whatever it is told. For instance, it does not check whether there's enough of free memory to start a guest. It just starts it and hope for the best. This led management applications to have some code that performs (more or less) similar checks. And this is my attempt to unify that code, move it out of individual projects under this umbrella project. It's named virt-lint. While it's written in Rust, it has C bindings from which bindings to other languages can be written (I've written Golang so far). I've created initial commit here: https://gitlab.com/MichalPrivoznik/virt-lint There is README.md which covers all the basic information. So far, I've written four very basic checks (see src/validators.rs): 1) whether there exists set of NUMA nodes large enough to accommodate given domain, 2) whether there exists set of NUMA nodes with enough of free memory to accommodate given domain, 3) whether the virtualization node has suitable emulator binary for given domain, 4) if domain is of Q35 machine type, whether it has at least one pcie-root-port (for hotplugging). Please keep in mind, these checks are just examples and possibly buggy. Writing proper checks is part of future work, for now I want to gather feedback on overall design, APIs, CLI, etc. I've also built RPMs and copied them over here: https://mprivozn.fedorapeople.org/rpms/virt-lint/ I appreciate any feedback. Michal