# Lyra ECS An ECS for the Lyra game engine. ## Why does it exist? I couldn't find anything that fulfilled my needs, specifically an ECS that can store arbitrary components without knowing about the types. This makes it easier to implement into a scripting engine that has the ability to create its own components. ## Features - [ ] Archetypes - [x] Spawning entities - [x] Despawning entities - [x] Delete entities from archetypes - [x] Find some way to fill in the gaps in component columns after entities are deleted * This was done by moving the last entity in the column to the gap that was just removed. - [x] Grow archetype as it fills up - [x] Borrow safety of components inside Archetypes - [x] Return `Ref` and `RefMut` from borrow queries - [ ] Querying components from archetypes - [x] Views - [ ] Mutable views - [ ] Make it possible so that ONLY `ViewMut` can borrow mutably - [x] Resources - [x] Get resources in views somehow - [ ] Relationships (maybe this can be done through queries, idk) - [ ] Dynamic queries * Needed for scripting engines that can create their own components that Rust does not know the types of. - [ ] Systems - [ ] Dispatchers/Executors - [ ] Execution graph that follows dependencies
To be honest, the name may change at some point