Realm
VK

Vulkan in Rust.

Native Vulkan bindings, cached dispatch, and an integrated Rust allocator for graphics and GPU compute. Free functions and associated methods share the same operation bodies.

RustMITExperimental
Volcanic landscape with flowing lava
vk · Vulkan Rust bindings

Install

The Cargo package is vkrust; the library and import namespace are vk.

Cargo.toml

1[dependencies]
2vk = { package = "vkrust", version = "0.12" }
3

The default loader feature loads the system Vulkan library at runtime. Consumers do not need a Vulkan SDK, C compiler, or binding generator.

Integrated allocator

Enable the allocator feature for vk::mem, the Rust-native, VMA-derived allocator. It provides managed buffers and images, memory pools, mapping, budgets, virtual placement, and explicit multi-pass relocation. Consumers need no C++ allocator or FFI bridge.

The allocator remains Experimental. Native resources and allocations need explicit cleanup; operations and Drop never submit or wait. Full VMA equivalence, unrestricted mixed-phase concurrency, broader platform execution, and comparative performance remain unqualified.

Native contracts

SurfaceContract
DispatchImmutable per-context function tables. No mutable global dispatch or per-call symbol lookup.
Calling stylesFree functions take an explicit dispatch context; associated methods delegate to the same implementation.
Record constructionGenerated borrowed setters keep backing host storage live. Native layout and raw fields remain available.
Resource ownershipVulkan calls remain unsafe. The caller owns valid usage, synchronization, exact completion, and explicit destruction.

VK exposes Vulkan directly. OA provides higher-level semantic values, operations, and engine-owned execution. Choose the surface that matches your application.

Version and qualification

These guides follow 0.12.0+1.4.365, with Rust 1.98.1 as the declared baseline. The version suffix identifies the generated Vulkan header snapshot; it does not require a Vulkan 1.4 driver. Requested API versions and enabled features must match the actual implementation.

The project is Experimental. Registry coverage and runtime qualification are separate. See the qualification report for physical-device, platform, and allocator limits.