https://github.com/MaikKlein/pyro
A linear Entity Component System
https://github.com/MaikKlein/pyro
ecs entity-component-system rust
Last synced: 5 months ago
JSON representation
A linear Entity Component System
- Host: GitHub
- URL: https://github.com/MaikKlein/pyro
- Owner: MaikKlein
- License: mit
- Archived: true
- Created: 2018-10-19T13:53:44.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2020-01-05T15:34:29.000Z (almost 6 years ago)
- Last Synced: 2024-05-01T21:55:56.642Z (over 1 year ago)
- Topics: ecs, entity-component-system, rust
- Language: Rust
- Homepage:
- Size: 83 KB
- Stars: 135
- Watchers: 9
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Pyro
A linear Entity Component System
[](LICENSE-MIT)
[](LICENSE-APACHE)
[](https://docs.rs/pyro)
[](https://crates.io/crates/pyro)
[](https://github.com/MaikKlein/pyro)## Overview
Pyro is a tiny, fast and documented Entity Component System. It provides a basic features set as:
* Iterating over entities and components
* Adding and removing entities
* Tracks which handles are validThe intention is to have a minimal set of features that can be built upon.
## Implementation details
* Iteration is always **linear**.
* Different component combinations live in a separate storage
* Removing entities does not create holes.
* All operations are designed to be used in bulk.
* Borrow rules are enforced at runtime.
* `Entity` is using a wrapping generational index.## Benchmarks
[bench defense](https://github.com/MaikKlein/bench_defense)

[ecs_bench](https://github.com/MaikKlein/ecs_bench)
