What is Raven?
Raven runs Windows applications on Linux. You install applications with their own installers, the same ones used on a PC, and they start with no virtual machine, no winetricks and no DLL overrides.
The program's code runs directly on the CPU inside a sandbox where it cannot reach Linux. Every system call it makes is answered by Raven, which plays the part of the Windows kernel and its services.
Raven requires Linux on x86_64, CMake 3.20 or newer, a C++20 compiler and Python 3.11 or newer. Desktop applications also need Wayland, xkbcommon, pixman, FreeType and Vulkan. It is built from source for now.
Key capabilities
- Windows system services Implements processes, threads, files, registry access, windows and input for Windows applications running on Linux.
- Installer execution Supports NSIS, Inno Setup and MSI packages, including custom actions, rollback and elevation.
- Application prefixes Provides separate Windows drives and registries, with pre-installation snapshots and a prefix restoration command.
- Graphics translation Uses DXVK and vkd3d-proton for Direct3D applications, with Wayland output and an experimental X11 desktop backend.
- Runtime compatibility Supports Windows programs using .NET Framework and Visual C++ redistributables, with required components installed into the prefix.
- Mixed architectures Runs 32-bit and 64-bit Windows programs side by side within the same prefix.
Where Raven fits
Raven fits Linux desktop environments where developers or administrators need to evaluate running Windows applications with their original installers rather than a virtual machine. Separate prefixes allow application-specific Windows environments, while installer snapshots provide a way to restore a prefix after installation changes.
Before deployment, the target application's installation, startup and actual workflows need testing. Build dependencies, desktop graphics requirements and required guest components must be checked, since the minimal build does not cover most desktop software. Some compatibility tests require separately obtained proprietary installers or redistributables and are skipped when those files are unavailable.
Install
git clone https://github.com/mirkobrombin/raven.git
cd raven
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j2Reviews of Raven
Be the first to share your experience with Raven.
Write a review
Loading review form…
