dclause / dclause/hermes-studio

Use an ECS for event management

Open
#1 1 comment 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.