Voodoo - A high-performance Vulkan® API for Rust
Documentation | Change Log
Features:
- An intuitive and idiomatic interface
- Zero additional overhead
- No unnecessary allocations
- No intermediate structs or extra copying
- Builders compile to direct assignment
- Thread-safe allocation / destruction
- Safety escape hatches available everywhere
- A minimum of boilerplate
- Non-opinionated and nothing hidden
- Complete API coverage
Getting Started
Ensure that Vulkan drivers are installed for your device. Add the following to your project's Cargo.toml:
[]
= "0.3.1"
And add the following to your crate root (lib.rs or main.rs):
extern crate voodoo;
Example
Create an instance:
extern crate voodoo;
use ;
use CString;
/// Initializes and returns a new loader and instance with all available
/// extension function pointers loaded.
See hello.rs
for a complete, working example adapted from
https://vulkan-tutorial.com/.
hello.rs
screenshot:
Status
- API coverage:
- Core: 100%
- Extensions: 70%
- Documentation: 30%
- Stability: 97%
Other Vulkan libraries in Rust
For a higher level, more opinionated, easier to use Vulkan API that does more for you see the Vulkano project.
Other low-ish level Rust libraries include dacite and ash. See vks for a direct ffi interface.
*“Vulkan and the Vulkan logo are registered trademarks of the Khronos Group Inc.”*