rs-ecs
A reasonably simple entity component system (ECS) developed for use in the simulation models of project group EcoEpi at the Helmholtz Centre for Environmental Research. The design is based on hecs but has a significantly reduced API surface.
It also has a few changes and additions specific to our use case:
- It is not thread-safe as the execution of single-threaded simulations is trivially deterministic. Additionally, running multiple instances of these in parallel often gives the highest throughput.
- It supports amortised random access to query results by entity identifier using the
QueryRef::mapmethod. This can be useful to efficiently traverse graph-like relations between entities. - Entities can be transferred between worlds without serialisation using the
World::transfermethod. We use this to completely remove entities from the simulation while keeping their full dynamic state around for later inspection.
License
Licensed under
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.