[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-6318":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":25,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":44,"readmeContent":45,"aiSummary":46,"trendingCount":16,"starSnapshotCount":16,"syncStatus":47,"lastSyncTime":48,"discoverSource":49},6318,"flecs","SanderMertens\u002Fflecs","SanderMertens","A fast entity component system (ECS) for C & C++","https:\u002F\u002Fwww.flecs.dev",null,"C",8391,604,79,22,0,4,27,127,21,39.35,"Other",false,"master",true,[27,28,29,30,31,32,33,34,35,5,36,37,38,39,40,41,42,43],"c99","cpp11","cpp14","cpp17","data-oriented","data-oriented-design","ecs","entity-component-system","entity-framework","game-development","game-engine","game-engine-framework","gamedev","modern-cpp","no-dependencies","portable","production-ready","2026-06-12 02:01:18","![flecs](docs\u002Fimg\u002Flogo.png)\n\n[![Version](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fv\u002Frelease\u002Fsandermertens\u002Fflecs?include_prereleases&style=for-the-badge)](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Freleases)\n[![MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-MIT-blue.svg?style=for-the-badge)](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Fblob\u002Fmaster\u002FLICENSE)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdocs-flecs-blue?style=for-the-badge&color=blue)](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fmd_docs_2Docs.html)\n[![actions](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002FSanderMertens\u002Fflecs\u002Fci.yml?branch=master&style=for-the-badge)](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Factions?query=workflow%3ACI)\n[![Discord Chat](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F633826290415435777.svg?style=for-the-badge&color=%235a64f6)](https:\u002F\u002Fdiscord.gg\u002FBEzP5Rgrrp)\n\nFlecs is a fast and lightweight Entity Component System that lets you build games and simulations with millions of entities ([join the Discord!](https:\u002F\u002Fdiscord.gg\u002FBEzP5Rgrrp)). Here are some of the framework's highlights:\n\n- Fast and [portable](#language-bindings) zero dependency [C99 API](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fgroup__c.html)\n- Modern type-safe [C++17 API](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fgroup__cpp.html) that doesn't use STL containers\n- First open source ECS with full support for [Entity Relationships](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fmd_docs_2Relationships.html)!\n- Fast native support for [hierarchies](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fmd_docs_2HierarchiesManual.html) and [prefabs](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fmd_docs_2PrefabsManual.html)\n- Code base that builds in less than 5 seconds\n- Runs [in the browser](https:\u002F\u002Fflecs.dev\u002Fcity) without modifications with emscripten\n- Cache friendly [archetype\u002FSoA storage](https:\u002F\u002Fajmmertens.medium.com\u002Fbuilding-an-ecs-2-archetypes-and-vectorization-fe21690805f9) that can process millions of entities every frame\n- Automatic component registration that works out of the box across shared libraries\u002FDLLs\n- Write free functions with [queries](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Fqueries\u002Fbasics) or run code automatically in [systems](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Fsystems\u002Fpipeline)\n- Run games on multiple CPU cores with a fast lockless scheduler\n- Verified on all major compilers and platforms with [CI](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Factions) running more than 13000 tests\n- Integrated [reflection framework](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fgroup__c__addons__meta.html) with [JSON serializer](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Freflection\u002Fbasics_json) and support for [runtime components](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Freflection\u002Fruntime_component)\n- [Unit annotations](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Freflection\u002Funits) for components\n- Powerful [query language](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Fqueries) with support for [joins](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Fqueries\u002Fsetting_variables) and [inheritance](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fflecs\u002Ftree\u002Fmaster\u002Fexamples\u002Fcpp\u002Fqueries\u002Fcomponent_inheritance)\n- [Statistics addon](https:\u002F\u002Fwww.flecs.dev\u002Fflecs\u002Fgroup__c__addons__stats.html) for profiling ECS performance\n- A web-based UI for monitoring & controlling your apps:\n\n[![Flecs Explorer](docs\u002Fimg\u002Fexplorer.png)](https:\u002F\u002Fflecs.dev\u002Fexplorer)\n\nTo support the project, give it a star 🌟 !\n\n## What is an Entity Component System?\nECS is a way of organizing code and data that lets you build games that are larger, more complex and are easier to extend. Something is called an ECS when it:\n- Has _entities_ that uniquely identify objects in a game\n- Has _components_ which are datatypes that can be added to entities\n- Has _systems_ which are functions that run for all entities matching a component _query_\n\nFor more information, check the [ECS FAQ](https:\u002F\u002Fgithub.com\u002FSanderMertens\u002Fecs-faq)!\n\n## Show me the code!\nC99 example:\n```c\ntypedef struct {\n  float x, y;\n} Position, Velocity;\n\nvoid Move(ecs_iter_t *it) {\n  Position *p = ecs_field(it, Position, 0);\n  Velocity *v = ecs_field(it, Velocity, 1);\n\n  for (int i = 0; i \u003C it->count; i++) {\n    p[i].x += v[i].x;\n    p[i].y += v[i].y;\n  }\n}\n\nint main(int argc, char *argv[]) {\n  ecs_world_t *ecs = ecs_init();\n\n  ECS_COMPONENT(ecs, Position);\n  ECS_COMPONENT(ecs, Velocity);\n\n  ECS_SYSTEM(ecs, Move, EcsOnUpdate, Position, Velocity);\n\n  ecs_entity_t e = ecs_insert(ecs,\n    ecs_value(Position, {10, 20}),\n    ecs_value(Velocity, {1, 2}));\n\n  while (ecs_progress(ecs, 0)) { }\n}\n```\n\nSame example in C++:\n\n```cpp\nstruct Position {\n  float x, y;\n};\n\nstruct Velocity {\n  float x, y;\n};\n\nint main(int argc, char *argv[]) {\n  flecs::world ecs;\n\n  ecs.system\u003CPosition, const Velocity>()\n    .each([](Position& p, const Velocity& v) {\n      p.x += v.x;\n      p.y += v.y;\n    });\n\n  auto e = ecs.entity()\n    .insert([](Position& p, Velocity& v) {\n      p = {10, 20};\n      v = {1, 2};\n    });\n\n  while (ecs.progress()) { }\n}\n```\n\n## Projects using Flecs\nIf you have a project you'd like to share, let me know on [Discord](https:\u002F\u002Fdiscord.gg\u002FBEzP5Rgrrp)!\n\n### Tempest Rising\n[![Tempest Rising](docs\u002Fimg\u002Fprojects\u002Ftempest_rising.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F1486920\u002FTempest_Rising\u002F)\n\n### Territory Control 2\n[![image](docs\u002Fimg\u002Fprojects\u002Fterritory_control.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F690290\u002FTerritory_Control_2\u002F)\n\n### Resistance is Brutal\n[![image](docs\u002Fimg\u002Fprojects\u002Fresistance_is_brutal.jpg)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F3378140\u002FResistance_Is_Brutal\u002F)\n\n### Rescue Ops: Wildfire\n[![image](docs\u002Fimg\u002Fprojects\u002Frescue_ops_wildfire.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2915770\u002FRescue_Ops_Wildfire\u002F)\n\n### Age of Respair\n[![image](docs\u002Fimg\u002Fprojects\u002Fage_of_respair.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F3164360\u002FAge_of_Respair\u002F)\n\n### FEAST\n[![image](docs\u002Fimg\u002Fprojects\u002Ffeast.jpg)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F3823480\u002FFEAST\u002F)\n\n### Gloam Vault\n[![image](docs\u002Fimg\u002Fprojects\u002Fgloam_vault.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F3460840\u002FGloamvault\u002F)\n\n### Antimatcher\n[![image](docs\u002Fimg\u002Fprojects\u002Fantimatcher.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F4336520\u002FAntiMatcher\u002F)\n\n### Writ of Battle\n[![image](docs\u002Fimg\u002Fprojects\u002Fwrit_of_battle.jpg)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F4445990\u002FWrit_of_Battle\u002F)\n\n### Extermination Shock\n[![image](docs\u002Fimg\u002Fprojects\u002Fextermination_shock.png)](https:\u002F\u002Fstore.steampowered.com\u002Fapp\u002F2510820\u002FExtermination_Shock\u002F)\n\n### The Forge\n[![image](docs\u002Fimg\u002Fprojects\u002Fthe_forge.jpg)](https:\u002F\u002Fgithub.com\u002FConfettiFX\u002FThe-Forge)\n\n### ECS survivors\n[![image](docs\u002Fimg\u002Fprojects\u002Fecs_survivors.png)](https:\u002F\u002Flaurent-voisard.itch.io\u002Fecs-survivors\u002F)\n\n### Tome Tumble Tournament\n[![image](docs\u002Fimg\u002Fprojects\u002Ftome_tumble.png)](https:\u002F\u002Fterzalo.itch.io\u002Ftome-tumble-tournament)\n\n### Sol Survivor\n[![image](docs\u002Fimg\u002Fprojects\u002Fsol_survivor.png)](https:\u002F\u002Fnicok.itch.io\u002Fsol-survivor-demo)\n\n### After Sun\n[![image](docs\u002Fimg\u002Fprojects\u002Fafter_sun.png)](https:\u002F\u002Fgithub.com\u002Ffoxnne\u002Faftersun)\n\n## Flecs Hub\n[Flecs Hub](https:\u002F\u002Fgithub.com\u002Fflecs-hub) is a collection of repositories that show how Flecs can be used to build game systems like input handling, hierarchical transforms and rendering.\n\nModule      | Description\n------------|------------------\n[flecs.components.cglm](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-cglm) | Component registration for cglm (math) types\n[flecs.components.input](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-input) | Components that describe keyboard and mouse input\n[flecs.components.transform](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-transform) | Components that describe position, rotation and scale\n[flecs.components.physics](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-physics) | Components that describe physics and movement\n[flecs.components.geometry](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-geometry) | Components that describe geometry\n[flecs.components.graphics](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-graphics) | Components used for computer graphics\n[flecs.components.gui](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-components-gui) | Components used to describe GUI components\n[flecs.systems.transform](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-systems-transform) | Hierarchical transforms for scene graphs\n[flecs.systems.physics](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-systems-physics) | Systems for moving objects and collision detection\n[flecs.systems.sokol](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-systems-sokol) | Sokol-based renderer\n[flecs.game](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-game) | Generic game systems, like a camera controller\n\n## Language bindings\nThe following language bindings have been developed with Flecs! Note that these are projects built and maintained by helpful community members, and may not always be up to date with the latest commit from master!\n- C#:\n  - [BeanCheeseBurrito\u002FFlecs.NET](https:\u002F\u002Fgithub.com\u002FBeanCheeseBurrito\u002FFlecs.NET)\n- Rust:\n  - [Flecs-Rust](https:\u002F\u002Fgithub.com\u002FIndra-db\u002FFlecs-Rust)\n  - [flecs-polyglot](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-polyglot)\n- Zig:\n  - [zig-gamedev\u002Fzflecs](https:\u002F\u002Fgithub.com\u002Fzig-gamedev\u002Fzflecs)\n- Lua:\n  - [sro5h\u002Fflecs-luajit](https:\u002F\u002Fgithub.com\u002Fsro5h\u002Fflecs-luajit)\n  - [flecs-hub\u002Fflecs-lua](https:\u002F\u002Fgithub.com\u002Fflecs-hub\u002Fflecs-lua)\n- Clojure\n  - [vybe-flecs](https:\u002F\u002Fvybegame.dev\u002Fvybe-flecs)\n","Flecs 是一个快速且轻量级的实体组件系统（ECS），适用于 C 和 C++ 语言，旨在帮助开发者构建能够处理数百万实体的游戏和模拟。它提供了一个零依赖的 C99 API 和现代类型安全的 C++17 API，不使用 STL 容器，支持实体关系、层次结构和预制件。Flecs 的架构设计注重数据导向，采用高效的 archetype\u002FSoA 存储方案，使得每帧可以处理大量实体。此外，它还具备自动组件注册、跨共享库\u002FDLL 支持、多核 CPU 调度等功能，并通过集成反射框架和 JSON 序列化增强了开发灵活性。Flecs 非常适合需要高性能和可移植性的游戏开发及复杂仿真项目。",2,"2026-06-11 03:06:25","top_language"]