dclause / dclause/hermes-studio
Use an ECS for event management
- Dominant language
- Vue
- Stars
- 15
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Description
I've been a bit busy recently, there's an idea I wanted to work on but so far haven't had the time. Thought I'd put it here instead.
Currently this crate is based on explicit event handlers and emits. It's also seemingly mirroring some inheritance based design.
What came to mind is that hermes-five is somewhat like a game engine. The devices are like NPC characters in a game world, which respond to events in order to move around. One of the leading database engines in Rust at the moment is Bevy. Cut out all the audio and visual and you are left with https://docs.rs/bevy_ecs/latest/bevy_ecs/.
I haven't actually attempted refactoring hermes-five to use bevy yet, but it's an interesting idea to me. When I have time I will attempt it just to see. I don't know if the API will really be that great, but I want to see nonetheless.
There's also some scripting support in some third party crates that would be interesting to explore
https://github.com/jarkonik/bevy_scriptum
https://github.com/makspll/bevy_mod_scripting
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reviewing the crate's current explicit event handlers and emit flow, then read the linked bevy_ecs and scripting-crate references. The issue names no files or tests and does not define completion criteria, so the ECS design and migration scope need maintainer agreement before implementation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- embedded-iot
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100