Ash Bootstrap

Ash Bootstrap is a utility library that jump starts initialization of Vulkan via the Ash bindings.
[dependencies]
ash_bootstrap = "0.1.2"
Features
-
Streamlined Vulkan initialization: Simplifies instance, device, and queue setup
-
Window integration: Built-in support for surface creation via ash-window
-
Tracing support: Optional integration with tracing crate
-
Portability: macOS compatibility via portability feature
Usage examples
fn main() -> anyhow::Result<()> {
let instance = InstanceBuilder::new(None)
.app_name("Example Vulkan Application")
.engine_name("Example Vulkan Engine")
.request_validation_layers(true)
.use_default_tracing_messenger()
.build()?;
let physical_device = PhysicalDeviceSelector::new(instance.clone())
.preferred_device_type(PreferredDeviceType::Discrete)
.select()?;
let device = Arc::new(DeviceBuilder::new(physical_device, instance.clone()).build()?);
let _device_handle = device.handle();
let (_graphics_queue_index, _graphics_queue) = device.get_queue(QueueType::Graphics)?;
let swapchain_builder = SwapchainBuilder::new(instance.clone(), device.clone());
let swapchain = swapchain_builder.build()?;
swapchain.destroy();
device.destroy();
instance.destroy();
}
For more examples make sure to check examples
directory.