Development and licenses
Find your way around the source, run the tests and contribute.
Raven is written in C++20 and lives in native/. The cmd/, pkg/ and internal/ folders hold its first implementation, in Go; new work goes into native/.
Source layout
| Path | What it contains |
|---|---|
native/main.cpp |
The launcher |
native/nt |
NT services: processes, threads, objects, files, the registry, prefixes and snapshots |
native/cpu |
The supervised guest process |
native/graphics |
Vulkan bridge, Wayland presentation and drawing |
native/upstream |
Components from other projects, each with its notices |
scripts |
Provisioning, test programs, benchmarks and application checks |
docs |
Benchmark charts and measurements |
Build and test
cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build -j2
ctest --test-dir build --output-on-failure -j1
ctest --test-dir build -N lists the tests, and -R PATTERN runs a subset. Which tests exist depends on the components your build found.
Historical test result
On October 23, 2026, the recorded CTest run passed 276 of 284 tests, with eight failures and no skipped tests. This is a historical result, not a claim about the current build.
| Field | Recorded configuration |
|---|---|
| Publication revision associated with the audit | 21fa2aa2284c8cce9f3b9ae811ee65fcd5134fbf |
| Build | RelWithDebInfo, RAVEN_SANITIZERS=OFF, two build workers |
| Test command | ctest --test-dir build --output-on-failure -j1 |
| Components | Font-enabled CPU Skia, Liberation fonts with qualified font-hash cache overrides, libpng, Wayland tools, 32/64-bit DXVK, 64-bit vkd3d-proton, installer and common-control components, RTL and certificate roots |
| Additional inputs | .NET Framework 3.5 and 4.8, XNA, Visual C++ redistributables and Minesweeper supplied separately |
| Tested runtime SHA-256 | 8fa0aadace441e65471350de3c0eaf52d3bfa5c3af95b933d154c65b1b0fe197 |
The revision identifies the publication associated with that audit. The retained result does not establish an exact clean-checkout source revision for the tested binary; the font cache overrides were part of the test configuration. Do not use this count as a prediction for another revision or configuration.
The failures were native_cpu_contracts, native_compatible_bitmap_contract, native_memory_contract, native_d3d12_present_gpu, native_d3d12_fullscreen_gpu, native_d3d11_present_gpu, native_d3d11_fullscreen_gpu and native_x86_d3d11_present_gpu. The last five reported isolated compositor did not start; that error alone does not establish a hardware GPU requirement.
Programs supplied separately
Some tests use software Raven cannot redistribute. Point these variables at your own copies: RAVEN_MINESWEEPER, RAVEN_NETFX_INSTALLER, RAVEN_NETFX35_PACKAGE, RAVEN_XNA_INSTALLER and RAVEN_REDIST_DIRECTORY; the Go checks also read RAVEN_NOTEPAD and RAVEN_DXBALL. Tests whose input is missing are skipped.
Contributing
The most useful contribution is one program that does not work, the command that shows it and what you expected. A small test program that reproduces the same behaviour is even better. For window and drawing changes, include a screenshot.
Licenses
Raven’s own code is under the MIT License. The components in native/upstream and the files derived from them keep their own licenses and notices (GPL, LGPL, BSD, libpng, Unicode and Skia), and a build that includes them follows those terms too. The bitmap font from Go Mono carries the Bigelow & Holmes notice. The website font has its license in /fonts/LICENSE.txt.