vulkano-rs/vulkano

Safe and rich Rust wrapper around the Vulkan API

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 59 minutes ago
Added to GitGenius on September 13th, 2026
Created on July 6th, 2015
Open Issues & Pull Requests: 88 (+0)
GitHub issues: Enabled
Number of forks: 473
Total Stargazers: 5,151 (+0)
Total Subscribers: 58 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

Vulkano is a safe and rich Rust wrapper around the Vulkan graphics API.

Vulkano addresses the challenge of using Vulkan safely from Rust by enforcing valid API usage through both compile-time and runtime checks. The library follows Rust's philosophy that safe code should never trigger undefined behavior, meaning non-unsafe code will always conform to valid Vulkan API usage. It provides a low-level API that doesn't hide Vulkan's complexity but adds comfort types and safety guarantees. A key feature is automatic GPU-side synchronization: the tool detects dependencies between submissions and manages semaphores automatically, eliminating one of Vulkan's most error-prone aspects, though developers can opt to handle synchronization manually if needed.

Vulkano suits developers who need direct access to Vulkan's capabilities while wanting safety guarantees and compile-time verification. It distinguishes itself through type-safe compile-time shaders and transparent interoperability with GLSL and SPIR-V shader code, with automatically generated types for shader layouts. Compared to alternatives, Wgpu offers a higher-level API with multiple backends including Metal, DirectX, and WebGPU, while Miniquad provides a more minimalistic approach suited to smaller projects. Ash and Erupt are lower-level unsafe bindings to Vulkan without the safety guarantees Vulkano provides. Sierra also targets Vulkan and Metal but uses macros for type construction and supports ray tracing pipelines.

The project maintains active development with regular commits addressing both new features and maintenance. Pull requests receive timely review and feedback from maintainers. Issue discussions show engagement with user questions and bug reports, with maintainers providing detailed explanations of design decisions and implementation details. The codebase demonstrates consistent attention to code quality and architectural improvements over time.