vulkane 0.4.4

Vulkan API bindings generated entirely from vk.xml, with a complete safe RAII wrapper covering compute and graphics: instance/device/queue, buffer, image, sampler, render pass, framebuffer, graphics + compute pipelines, swapchain, a VMA-style sub-allocator with TLSF + linear pools and defragmentation, sync primitives (fences, binary + timeline semaphores, sync2 barriers), query pools, and optional GLSL/WGSL/HLSL→SPIR-V compilation via naga or shaderc. Supports Vulkan 1.2.175 onward — swap vk.xml and rebuild.
Documentation
//! Raw Vulkan bindings and loader functionality
//!
//! This module provides direct access to Vulkan functions and types.

// Include generated bindings from build script
pub mod bindings {
    //! Generated Vulkan bindings from XML specification
    // Bring common C types into the module scope so generated bindings that
    // reference `c_void`, `c_char`, and similarly prefixed const-type names
    // can compile without requiring edits to the generated file. Prefer
    // `core::ffi` so this module works in `no_std` contexts as well as std.
    #![allow(
        non_camel_case_types,
        non_snake_case,
        non_upper_case_globals,
        dead_code,
        clippy::all
    )]

    use core::ffi::{c_char, c_ulong, c_void};

    include!(concat!(env!("OUT_DIR"), "/vulkan_bindings.rs"));
}

// Version definitions
pub mod version;

// VkResult -> Rust Result helpers
pub mod result;
pub use result::VkResultExt;

// Loader functionality
pub mod loader;
pub use loader::VulkanLibrary;