Voodoo - A high-performance Vulkan® API for Rust

Features:

Getting Started

Ensure that Vulkan drivers are installed for your device. Add the following to your project's Cargo.toml:

toml [dependencies] voodoo = "0.1"

And add the following to your crate root (lib.rs or main.rs): rust extern crate voodoo;

Example

Create an instance:

```rust extern crate voodoo;

use voodoo::{Result as VdResult, Instance, ApplicationInfo, Loader}; use std::ffi::CString;

/// Initializes and returns a new loader and instance with all available /// extension function pointers loaded. fn initinstance() -> VdResult { let appname = CString::new("Hello!")?;

let app_info = ApplicationInfo::builder()
    .application_name(&app_name)
    .application_version((1, 0, 0))
    .api_version((1, 0, 0))
    .build();

let loader = Loader::new()?;

Instance::builder()
    .application_info(&app_info)
    .enabled_extensions(&loader.enumerate_instance_extension_properties()?)
    .build(loader)

}

fn main() { let instance = initinstance().unwrap(); }

```

See [hello.rs] for a complete, working example adapted from https://vulkan-tutorial.com/.

Status

Other Vulkan libraries in Rust

For a higher level, more opinionated Vulkan API (that does more for you) see the [Vulkano] project.

Other similar libraries include [dacite] and [ash].


“Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.”