Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Vulkan
  3. vulkan

vulkan

BSD-3-ClauseHaskellutils-v0.5.11.0

High-level, idiomatic Haskell bindings for the Vulkan graphics API, reducing verbosity while retaining full functionality.

Visit WebsiteGitHubGitHub
164 stars35 forks0 contributors

What is vulkan?

Vulkan is a Haskell library that provides high-level bindings to the Vulkan graphics API, offering an idiomatic Haskell interface that reduces the verbosity and boilerplate of the C API. It automates low-level tasks like function pointer retrieval and memory management while retaining full access to Vulkan's features, making it easier to write graphics and compute applications in Haskell.

Target Audience

Haskell developers working on graphics-intensive applications, game engines, or GPU compute projects who want to leverage Vulkan's performance without dealing with C-level complexity.

Value Proposition

Developers choose these bindings for their type-safe, idiomatic Haskell design that eliminates Vulkan's C API verbosity, provides automatic error handling, and ensures memory safety through bracketed commands, all while maintaining full compatibility with Vulkan's specification.

Overview

Haskell bindings for Vulkan

Use Cases

Best For

  • Writing high-performance graphics applications in Haskell
  • Building game engines with Vulkan backend support
  • Developing GPU compute programs using Vulkan's compute pipelines
  • Creating cross-platform graphics tools with Vulkan
  • Learning Vulkan in a type-safe, functional programming environment
  • Prototyping graphics features with automatic resource management

Not Ideal For

  • Teams deeply embedded in C++ Vulkan ecosystems seeking drop-in compatibility
  • Projects requiring immediate access to Vulkan's video extensions (e.g., for real-time encoding/decoding)
  • Environments restricted to 32-bit systems or older GHC versions (<8.6)
  • Developers wanting a graphics engine with pre-built rendering pipelines and minimal API work

Pros & Cons

Pros

Automatic Function Pointers

Eliminates manual vkGetInstanceProcAddr calls, reducing setup boilerplate and errors as explicitly mentioned in the README's 'Things to know' section.

Type-Safe Struct Chains

Uses Haskell's type system to safely represent Vulkan's pNext chains with GADTs and pattern synonyms, preventing runtime type mismatches.

Memory Safe Bracketing

Provides commands like withInstance and cmdUseRenderPass for automatic resource cleanup, ensuring proper Vulkan resource lifecycle management without manual destroy calls.

Idiomatic Type Conversions

Converts low-level C types (e.g., VkBool32 to Bool, C strings to ByteString) and uses Vector for arrays, making API usage more Haskell-native and readable.

Cons

Missing Video Extensions

Several Vulkan video extensions (e.g., VK_KHR_video_queue) are explicitly disabled in the generator, limiting functionality for multimedia applications as noted in 'Current Status'.

Platform and Version Constraints

The library is 64-bit only and requires GHC 8.6+, excluding older systems and Haskell setups, which restricts portability and adoption.

Complex Build Configuration

Setting up requires specific system packages and detailed steps, especially on Windows with Vulkan SDK and SDL2 dependencies, as outlined in the lengthy 'Building' sections.

Frequently Asked Questions

Quick Stats

Stars164
Forks35
Contributors0
Open Issues21
Last commit1 day ago
CreatedSince 2016

Tags

#vulkan#low-level-graphics#haskell#ffi-bindings#game-development#type-safe#graphics-api#cross-platform#gpu-programming

Built With

G
GHC
H
Haskell

Links & Resources

Website

Included in

Vulkan3.7k
Auto-fetched 17 hours ago

Related Projects

gfxgfx

[maintenance mode] A low-overhead Vulkan-like GPU API for Rust.

Stars5,396
Forks530
Last commit3 years ago
Silk.NETSilk.NET

The high-speed OpenGL, OpenCL, OpenAL, OpenXR, GLFW, SDL, Vulkan, Assimp, WebGPU, and DirectX bindings library your mother warned you about.

Stars5,139
Forks469
Last commit23 hours ago
VulkanoVulkano

Safe and rich Rust wrapper around the Vulkan API

Stars5,121
Forks472
Last commit11 days ago
Vulkan-hppVulkan-hpp

Open-Source Vulkan C++ API

Stars3,769
Forks361
Last commit1 day ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub