v0.3.2: Bevy All The Way edition.
Overview
This release completes the transition from the original flat Paneru architecture to a native, multi-threaded Bevy ECS (Entity Component System).
Originally inspired by Yabai, Paneru utilized a dual-thread model: one thread received MacOS events and forwarded them to a handler thread for sequential processing. Under the old architecture, implementing true parallelism was difficult because Rust’s strict mutability tracking made it complicated to safely share and modify window state across multiple objects simultaneously.
The move to Bevy ECS solves this by leveraging a system-based architecture. While a main Bevy thread captures MacOS events, window management logic is now handled by independent systems. This asynchronous approach allows Paneru to seamlessly handle concurrent tasks such as animations, timers and timeouts.
New Features
- Bevy multi-threading. Dispatch and animation systems are in a separate scheduling group for smoother operation.
- Animation speed is now specified in 1/10th of display width, and not in pixels as before.
- Allow multiple key bindings for the same command. (https://github.com/karinushka/paneru/issues/62)
- Dump internal state command -
printstate.