{"repo":"ten3roberts/flax","free":true,"listed":false,"github":"https://github.com/ten3roberts/flax","clone":"git clone https://github.com/ten3roberts/flax.git","description":"Batteries included ECS library for rust with entity relations and much more","language":"Rust","stars":99,"topics":["ecs","game-development","rust"],"license":null,"category":"game-templates","readme_excerpt":"Flax Flax is a performant and ergonomic Entity Component System. The world is organized by simple identifiers known as an Entity , which can have any number of components attached to them. Systems operate on the world's entities and provide the application logic. Consider reading the User Guide Features - Declarative component macro - Expressive query system - Change detection - Query filtering - System execution - Multithreaded system execution - Many to many entity relation and graphs - Reflection through component metadata - Ergonomic entity builder - Serialization and deserialization - (async) event subscription - Runtime components - ...and more Live Demo See a live demo of asteroids using wasm here. Source Example Usage Systems Queries with logic can be abstracted into a system, and multiple systems can be collected into a schedule. Relations Flax provides first class many-many relations between entities, which is useful for tree scene hierarchies, graphs, and physics joints between entities. Relations can be both state-less or have associated data, like spring or joint strengths. Relations are cache friendly and querying children of does not require random access. In addition, relations are cleaned up on despawns and are stable during serialization, even if the entity ids migrate due to collisions. See the guide for more details. Comparison to other ECS Compared to other ECS implementations, a component is simply another Entity identifier to which data is attached. Thi","default_branch":null,"files":null,"tree":[],"storefront":"/r/ten3roberts","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ten3roberts/flax/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}