A no_std
and no-alloc
tiny ECS written in Rust, which provides strong compile-time guarantees.
This project is in active development but is ready to be used, just note that its API will break often until v0.1.x releases.
typed_ecs
is a tiny, zero-cost framework that:
- lets you wire plugins together at compile time using tuple-based plugin lists
- enforces plugin / shared-data compatibility via Rust trait bounds (no runtime checking)
- is written for
no_std
andno_alloc
environments (small, deterministic runtime)
no_std
compatible, andno-alloc
: all kinds of platforms supported- Compile-time plugin composition
- Strong compile-time guarantees for plugin/SharedData compatibility
- Zero runtime-registration or reflection — everything resolved at compile time
- Light, optimized runtime loop, with direct plugin calls
- Ergonomic design: no tricky or cryptic code needed to use
typed_ecs
Explore the examples to see typed_ecs
in action:
git clone https://github.com/heydocode/typed_ecs.git
cd typed_ecs
cargo run --example hello_world
Check the examples/
directory for more comprehensive examples, including:
hello_world.rs
: Plugin definition and message on startup
We welcome contributions! Whether you're interested in:
- Reporting bugs
- Writing code
- Improving documentation
- Enhancing CI/CD pipelines
- Adding tests
- Creating a dedicated website
Please check our Contribution Guidelines first.
For larger contributions or significant changes (like creating a website), we recommend:
- Opening an issue using the Question template
- Discussing your approach with maintainers
- Getting alignment on design and implementation details
This ensures your efforts align with project goals and standards. For smaller fixes like documentation tweaks or test additions, feel free to submit a PR directly.