typed_ecs 0.0.1

A no_std, no_alloc Entity Component System with compile-time guarantees
Documentation
  • Coverage
  • 53.49%
    23 out of 43 items documented2 out of 37 items with examples
  • Size
  • Source code size: 24.64 kB This is the summed size of all the files inside the crates.io package for this release.
  • Documentation size: 2.38 MB This is the summed size of all files generated by rustdoc for all configured targets
  • Links
  • heydocode/typed_ecs
    0 0 0
  • crates.io
  • Dependencies
  • Versions
  • Owners
  • heydocode

typed_ecs

no_std Alloc-free License

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.

About

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 and no_alloc environments (small, deterministic runtime)

Key features

  • no_std compatible, and no-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

Examples

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

Contributing

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:

  1. Opening an issue using the Question template
  2. Discussing your approach with maintainers
  3. 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.