4 releases
Uses new Rust 2024
| 0.1.3 | Jul 9, 2025 |
|---|---|
| 0.1.2 | Jul 9, 2025 |
| 0.1.1 | May 27, 2025 |
| 0.1.0 | May 27, 2025 |
#153 in Graphics APIs
188 downloads per month
120KB
2.5K
SLoC
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()?);
// You can get the inner handle that is used by vulkan
// Or you can just pass it where the device handle is expected, because it implements AsRef.
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()?;
// And right now we got rid of 400-500 lines of vulkan boilerplate just like that.
// Now let's cleanup.
swapchain.destroy();
device.destroy();
instance.destroy();
}
For more examples make sure to check examples directory.
Dependencies
~5.5–7.5MB
~156K SLoC