// the find
PistonDevelopers/piston
A modular game engine written in Rust
Piston is a modular game engine for Rust built around a trait-based abstraction layer — you swap backends (window, graphics, audio) without changing game logic. It was one of the first serious game engine efforts in Rust and influenced the ecosystem early on. Today it's mostly a historical artifact; active Rust game dev has moved to Bevy.
The event loop abstraction is genuinely clean — a single iterator-style loop over typed events (Render, Update, Input) that works across window backends. The input module has thorough benchmarks covering every event type, which is unusual and useful. The crate decomposition (piston, piston-window, piston2d-graphics, etc.) means you can pull in only what you need without dragging in a monolith.
Last meaningful commit was May 2024 and the project has been in maintenance mode for years — do not start a new project on this. No ECS, no scene graph, no asset pipeline; you're building all of that yourself on top of what is essentially a windowing and event abstraction. The modularity that was a selling point became fragmentation in practice — the ecosystem of piston-* crates has varying maintenance states and compatibility is not guaranteed. Bevy exists now and does everything Piston set out to do, with an active community and real tooling.