finds.dev← search

// the find

PistonDevelopers/piston

★ 4,693 · Rust · MIT · updated May 2024

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.

View on GitHub → Homepage ↗

// 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 →