finds.dev← search

// the find

amethyst/rendy

★ 812 · Rust · NOASSERTION · updated Nov 2022

State of the art "build your own engine" kit powered by gfx-hal

Rendy is a mid-level Vulkan rendering library built on top of gfx-hal, designed as a foundation for game engines rather than a complete one. It handles the annoying parts of Vulkan — memory allocation, command buffer state, render graph synchronization — while leaving the high-level scene decisions to you. The primary consumer was the Amethyst game engine, which has since shut down.

Type-system-enforced command buffer states is genuinely good engineering — you literally cannot record a draw call outside a render pass because the type won't let you. The render graph handles inter-pass barrier insertion automatically, which is the part of Vulkan that most developers get wrong. The memory allocator (Heaps) covers the three common allocation strategies (dedicated, dynamic, linear) and handles CPU/GPU mapping transparently. The codebase is cleanly split into independent subcrates so you can take just the memory allocator without pulling in the graph.

Abandoned — last push November 2022, gfx-hal itself was deprecated in favor of wgpu, and the Amethyst project that drove rendy is defunct. Anyone picking this up today would be building on a dead abstraction layer. GPU-to-CPU readback is explicitly marked 'not yet implemented', which rules out any compute-heavy workflow. The declarative pipeline derive macros are 'planned' — still not there after years of development. If you actually want this kind of API in 2024, wgpu or ash-directly are the realistic paths forward.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →