// the find
aclysma/rafx
Multi-backend renderer with asset pipeline. The objective of this repo is to build a scalable, flexible, data driven renderer.
Rafx is a layered Rust renderer abstraction that spans from a thin graphics API wrapper (Vulkan/Metal/DX12/GLES) up through resource management, a render graph, and a full plugin-based renderer with asset pipeline integration. It targets Rust developers building game engines or serious graphics applications who want multi-backend support without reinventing every layer. Still pre-0.1.0 with no semver commitment.
The layered architecture is genuinely useful — you can stop at rafx-api if you only need a backend abstraction, or use the full stack with rafx-renderer. The shader processor that auto-generates Rust descriptor set bindings from GLSL is a real quality-of-life win; manually managing Vulkan descriptor sets is where most projects accumulate subtle bugs. The pipelined rendering architecture (extract/prepare/write phases decoupled from the sim thread) comes straight from how production engines like Destiny's actually work — it's not toy design. Platform coverage is broad and demonstrably tested, including iOS Metal.
The asset pipeline integration is built on top of distill, which is an Amethyst-era project that has been effectively abandoned — adopting rafx means taking on that dead dependency as a core part of your pipeline. Development pace has visibly stalled: pre-0.1.0 with 722 stars and last meaningful activity in mid-2024, which raises real questions about whether the API will stabilize or the project will be maintained. The docs.rs build is broken due to feature flags, so API documentation only works if you clone and run cargo doc locally — bad friction for evaluating the library. The OpenGL/WebGL backend is explicitly being deprioritized, which limits web deployment options.