About this project

Flecs is a high-performance Entity Component System (ECS) framework designed for C and C++ developers building games and simulations. It provides a fast, lightweight, and portable solution with a zero-dependency C99 API and a modern, type-safe C++17 API that avoids STL containers. Key features include: - **Entity Relationships**: Full support for entity relationships, a first for an open-source ECS. - **Hierarchies and Prefabs**: Native support for scene graphs and reusable entity templates. - **Performance**: Cache-friendly archetype/SoA storage that can process millions of entities per frame, with a lockless scheduler for multi-core execution. - **Portability**: Builds in under 5 seconds and runs in the browser via emscripten without modifications. - **Reflection**: Integrated reflection framework with JSON serialization and runtime component support. - **Query Language**: Powerful query system with joins and inheritance. - **Tooling**: Statistics addon for profiling and a web-based UI (Flecs Explorer) for monitoring and control. Flecs is used in several commercial games, including Tempest Rising and Territory Control 2, and has a community hub (Flecs Hub) with modules for transforms, physics, rendering, and more. Language bindings are available for C#, Rust, Zig, Lua, and Clojure, maintained by community members. The project is MIT-licensed, actively maintained with over 13,000 tests in CI, and supported by a Discord community.