Crates.io | erupt |
lib.rs | erupt |
version | 0.23.0+213 |
source | src |
created_at | 2020-04-15 14:41:10.150797 |
updated_at | 2022-11-14 18:05:56.670679 |
description | Vulkan API bindings |
homepage | |
repository | https://gitlab.com/Friz64/erupt |
max_upload_size | |
id | 230526 |
size | 6,064,414 |
Vulkan API bindings
Take a look at the erupt
user guide.
It is not recommended to use erupt for new projects, use ash instead. There is work underway to rewrite ash using ideas from the erupt project, for updates see https://github.com/ash-rs/ash/issues/344. Simple patches to erupt will still be merged, but no large changes are to be expected.
VulkanResult
: Idiomatic wrapper around a Vulkan Resultsurface
: Create a SurfaceKHR
using a RawWindowHandle
(adapted from ash-window
)EntryLoader
, InstanceLoader
, DeviceLoader
)Flags
and FlagBits
typesBuilder
for every structDefault
and Debug
implementation for every typeutils
use erupt::{vk, EntryLoader, InstanceLoader};
let entry = EntryLoader::new()?;
let app_info = vk::ApplicationInfoBuilder::new()
.api_version(vk::API_VERSION_1_1);
let instance_info = vk::InstanceCreateInfoBuilder::new()
.application_info(&app_info);
let instance = InstanceLoader::new(&entry, &instance_info)?;
// ...
instance.destroy_instance(None);
surface
(enabled by default): Enables the surface
module, adds raw-window-handle
dependencyloading
(enabled by default): Enables the EntryLoader::new
function, adds libloading
dependencybytemuck
: Implements Pod
for some hand-picked structs (*IndirectCommand
, etc.), adds bytemuck
dependencyA: Vulkano is special because it provides hand-written Vulkan wrappers, which means that for example
it has a special hand-written wrapper around a Vulkan PhysicalDevice
. On the other hand ash and
erupt both provide Vulkan API bindings too, but not exposing such fancy wrappers and instead
focusing on having good bindings to the raw Vulkan API.
The big selling points of erupt is that it has better documentation, high level function support for all extensions (which is only really relevant if you use those extensions), being fully generated and some more smaller improvements. On the other hand ash has a bigger existing community.
A: It represents the Vulkan Header version this version of erupt was generated against and is purely informational.
erupt-bootstrap
: Vulkan Bootstrapping library, inspired by vk-bootstrapgpu-alloc
: Rust-native, used internally by wgpu
vk-alloc
: Rust-nativevk-mem-erupt
: Bindings to the C++ Vulkan Memory Allocator (VMA) libraryRust 1.48 or higher.
ash
for helping inspiring and making this cratelibloading
for providing symbol loadingash-window
for providing a base for the surface
modulebitflags
for providing a perfect bitflag macroThe logo is the Volcano Emoji of Twemoji (License). The name "erupt" was added on top of it.
This project is licensed under the zlib License.