// the find
bevyengine/bevy
A refreshingly simple data-driven game engine built in Rust
Bevy is a data-driven game engine built around ECS (Entity Component System) in Rust. It targets developers who want a modern, modular engine without the C++ baggage of Unreal/Godot, and who are comfortable trading ecosystem maturity for Rust's memory safety and compile-time guarantees. Not a Unity replacement yet — more of a serious foundation that's still finding its shape.
The ECS architecture is genuinely well-designed: systems are plain functions, queries are type-safe, and parallelism is automatic when there are no conflicting borrows — you get data-race freedom enforced by the compiler, not by convention. The plugin system is first-class; you can split your game into crates and compose them cleanly without fighting the engine. The example library is unusually thorough — 300+ runnable examples covering everything from compute shaders to animation graphs, which makes it the best way to learn the API. The asset pipeline handles hot-reloading, async loading, and custom asset types without needing third-party plugins.
Breaking API changes every ~3 months are a real cost — migration guides exist but adoption of community plugins consistently lags releases, meaning you'll hit unmaintained crates. The UI system (bevy_ui) has historically been the weakest part of the engine: flexbox-only layout, no retained-mode widget library, and writing anything beyond debug HUD requires either Bevy's current work-in-progress overhaul or reaching for bevy_egui. Compile times are painful even with the fast-compile setup; a clean build on a mid-range machine takes minutes, which breaks iteration flow for non-trivial projects. Documentation is sparse outside the examples — the API docs exist but rarely explain *why* you'd use one approach over another.