virtu
Virtu
A dual-interface, high-performance virtualization management platform.
⚡ Overview
Virtu provides comprehensive management for libvirt-based infrastructure (KVM/QEMU) with absolute focus on concurrency and speed. It features a unified core driving two first-class interfaces:
- Virtu Web (WUI): A lightning-fast, server-side rendered web dashboard powered by Kemal and HTMX.
- Virtu Desktop (GUI): A fully native, highly responsive desktop client built with GTK4.
✨ Features
- Blazing Fast: Written purely in Crystal with non-blocking, fiber-based C-FFI
libvirtbindings. - Dual Interfaces: Manage your cluster from the browser or natively on the desktop.
- Advanced Hardware Management:
virt-managerstyle hardware configurations, dynamic hot-plugging, and direct XML manipulation. - Zero-Friction State: A centralized background daemon seamlessly syncs VM state to clients without blocking OS threads.
🚀 Getting Started
Prerequisites
On Fedora:
# Enable Crystal COPR repository and install dependencies
sudo dnf copr enable -y zawertun/crystal
sudo dnf install crystal shards libvirt-devel gtk4-devel libadwaita-devel
# Add user to libvirt, kvm, and qemu groups for non-root hypervisor access
sudo usermod -aG libvirt,kvm,qemu $USER
newgrp libvirt
Ensure Crystal 1.20.2+ and development headers for libvirt, gtk4, and libadwaita are installed.
[!NOTE] Ensure system packages are installed before running
shards install. If package installation occurs afterwards, run./bin/gi-crystalormaketo generate missing GObject Introspection bindings.
Build & Run
# 1. Install dependencies
shards install
# 2. Build binaries (development or release)
make # Dev build (fast compilation)
make release # Production build (optimized)
# 3. Run interface
./bin/virtu-wui # Web UI
./bin/virtu-gui # Desktop GUI
Useful Commands
make test— Run the spec test suitemake dev— Run development server with auto-reloadmake lint— Run Ameba, ESLint, and Stylelintmake security— Run Flaw security analyzer
📚 Technical Documentation
Detailed architecture documentation, technical specs, and the project roadmap can be found in the docs/technical/ directory.
🤝 Contributing
- Fork the project.
- Create your feature branch (
git checkout -b feature/my-feature). - Commit your changes (
git commit -am 'feat(scope): add some feature'). - Push to the branch (
git push origin feature/my-feature). - Open a Merge Request on GitLab.
virtu
- 0
- 0
- 0
- 0
- 12
- 7 days ago
- June 7, 2026
GNU General Public License v3.0 or later
Tue, 04 Aug 2026 05:46:45 GMT