A curated list of Entity-Component-System (ECS) libraries and resources.
Legend: 🟢 Active (<1yr) · 🟡 Slow (1-2yr) · 🔴 Stale (>2yr) · 💀 Archived
Libraries and frameworks implementing the Entity-Component-System pattern.
- 💀 anax - Open source C++ entity system. ⭐ 463
- 💀 ECS - C++ single-header entity component system library. ⭐ 483
- 🔴 ecs.hpp - A single header C++14 entity component system library. ⭐ 41
- 🔴 ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library. ⭐ 491
- 🔴 EntityFu - A simple, fast entity component system written in C++. ⭐ 86
- 🔴 EntityPlus - C++14 entity component system. ⭐ 191
- 🟢 EntityX - Fast, type-safe C++ entity component system. ⭐ 2.3k
- 🟢 entt - Fast and reliable entity-component system. ⭐ 12.8k
- 🟢 Flecs - A Multithreaded Entity Component System written for C89 & C99. ⭐ 8.4k
- 🟢 Gaia-ECS - Fast and type-safe C++17 archetype-based entity component system. ⭐ 129
- 🔴 Ginseng - An ESC library designed for use in games. ⭐ 55
- 🔴 goomy - A tiny, experimental ECS framework. ⭐ 14
- 🔴 Kengine - Game engine with an Entity-Component-System (ECS) architecture. ⭐ 617
- 🔴 matter - C++17/20 ECS implementation. ⭐ 21
- 🟢 mustache - A fast, modern C++ entity component system. ⭐ 72
- 🟢 pico_ecs - Single-header and cross-platform ECS. ⭐ 544
- 🟢 WickedEngine's ECS - WickedEngine's ECS implementation. ⭐ 7.1k
- 🟢 Arch - A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming. ⭐ 1.7k
- 🔴 DefaultEcs - ECS for syntax and usage simplicity with maximum performance. ⭐ 759
- 🟢 DragonECS - ECS for Unity and .NET. ⭐ 330
- 🔴 Entitas - The Entity Component System Framework for C# and Unity. ⭐ 7.6k
- 🟢 Fennecs - ... the tiny, tiny, high-energy Entity-Component System! ⭐ 442
- 🟢 Frent - Data oriented ECF with an ECS api for C#, Godot, and Unity. ⭐ 172
- 🟢 Friflo Engine ECS - ECS for .NET with focus on performance, cache locality and DX. ⭐ 657
- 🔴 LeoEcsLite - Lightweight C# Entity Component System framework. ⭐ 62
- 🟢 Massive ECS - Bitset-based ECS with rollbacks. C# library and Unity package. ⭐ 210
- 🟢 ME.BECS - ECS for Unity with full game state automatic rollbacks. ⭐ 249
- 🟢 Morpeh - ECS Framework for Unity Game Engine and .NET Platform. ⭐ 645
- 🟢 Static ECS - C# Hierarchical Inverted Bitmap ECS framework. ⭐ 182
- 🟡 Svelto.ECS - Lightweight data oriented entity component system framework. ⭐ 1.4k
- 🟢 TinyEcs - A tiny bevy-like archetype-style ECS library for dotnet. ⭐ 148
- 🔴 beast - Basic Entity/Aspect/System Toolkit. ⭐ 30
- 🔴 cl-ecs - An implementation of the Entity-Component-System pattern mostly used in game development. ⭐ 8
- cl-fast-ecs - Blazingly fast Entity-Component-System microframework. gitlab
- 🟢 bevy_ecs - Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful written in Rust. ⭐ 46.5k
- 🟢 hecs - High-performance, minimalist entity-component-system. ⭐ 1.3k
- 🔴 legion - High performance Rust ECS library. ⭐ 1.7k
- 🟢 shipyard - Entity Component System written in Rust. ⭐ 859
- 🔴 specs - Parallel entity component system written in Rust. ⭐ 2.6k
- 🟢 Ark - An archetype-based Entity Component System for Go. ⭐ 280
- 🔴 ecs - A Go-implementation of the Entity-Component-System paradigm. ⭐ 334
- 🟡 Concord - A feature-complete ECS library. ⭐ 316
- 🔴 ECS Lua - A fast and easy to use ECS engine for game development. ⭐ 229
- 🟢 evolved.lua - Evolved ECS (Entity-Component-System) for Lua. ⭐ 212
- 🔴 Nata - Entity management for Lua. ⭐ 51
- 🔴 tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful. ⭐ 781
- 🔴 Artemis-odb - A continuation of the popular Artemis ECS framework. ⭐ 833
- 🟢 Ark.jl - An archetype-based Entity Component System (ECS) for Julia. It is a port of the Go ECS Ark. ⭐ 78
- 🟡 becsy - A multithreaded Entity Component System (ECS) for TypeScript and JavaScript, inspired by ECSY and bitecs. ⭐ 294
- 🟢 bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library. ⭐ 1.4k
- 💀 ECSY - Entity Component System for javascript. ⭐ 1.2k
- 🟢 miniplex - The gentle game entity manager, focused on ease of use and developer experience. ⭐ 1.0k
- 🔴 Thyseus - An archetypal Entity Component System, built entirely in Typescript. ⭐ 86
- 🟢 Woven-ECS - A multithreaded ECS framework for TypeScript aimed at collaborative browser applications. ⭐ 8
- 🟢 Comptime ECS - Comptime-defined ECS implementation in Zig. ⭐ 4
- 🟢 knoedel - Data oriented application framework written in Zig (ECS). ⭐ 33
- 🔴 mach-ecs - Entity Component System from first-principles designed for Zig. ⭐ 35
- 🟢 ZCS - An archetype based entity component system written in Zig. ⭐ 150
- 🟢 Zig ECS - A Zig port of the fantasic Entt. ⭐ 419
Game engines built on ECS architecture.
- 🟢 crown - General purpose data-driven game engine. ⭐ 28
- 🔴 Engine - Basic cross-platform 3D game engine. ⭐ 299
- 🟢 halley - A lightweight game engine written in modern C++. ⭐ 3.8k
- 🔴 igneous - Open source game engine written in C++. ⭐ 52
- 🔴 kengine - Game engine focused on ease-of-use, runtime extensibility and compile-time type safety. ⭐ 617
- 🟢 Lina Engine - Modular, tiny and fast C++ game engine, aimed to develop 3D desktop games. ⭐ 898
- 🟢 Lumos - Cross-Platform C++ 2D/3D game engine. ⭐ 1.6k
- 🔴 MxEngine - C++ open source 3D game engine. ⭐ 1.2k
- 🟢 Nazara Engine - Cross-platform framework aimed at real-time applications requiring audio, 2D and 3D real-time rendering, network and more. ⭐ 828
- 🟢 nebula - Open-source and free-to-use modern C++ game engine. ⭐ 1.1k
- 💀 shiva - Modern Cross-Platform C++ Engine with modularity. ⭐ 158
- 🔴 Sparky - Cross-Platform High Performance 2D/3D game engine. ⭐ 1.2k
- 🟢 supernova - Game engine for 2D and 3D projects with ECS and data-oriented design. ⭐ 405
- 🔴 Usagi - Hierarchical component entity system based game engine. ⭐ 56
- 🟢 WickedEngine - 3D engine with modern graphics. ⭐ 7.1k
- 🟡 Engo - A cross-platform game engine written in Go following an interpretation of the Entity Component System paradigm. ⭐ 1.8k
- 🟡 Ambient - The multiplayer game engine. ⭐ 3.9k
- 💀 Amethyst - Data-oriented and data-driven game engine written in Rust. ⭐ 8.0k
- 🟢 Bevy - A refreshingly simple data-driven game engine built in Rust. ⭐ 46.5k
- 🟢 Bones - An easy-to-use game engine for making real games. ⭐ 298
- 🟢 mach - Game engine & graphics toolkit for building high-performance, truly cross-platform, robust & modular games, visualizations, and desktop/mobile GUI apps. ⭐ 4.8k
Graphics and rendering engines using ECS.
- 🟢 bs::framework - Modern C++14 library for the development of real-time graphical applications. ⭐ 1.9k
- 🟢 The Forge - Cross-Platform Rendering Framework with support for PC Windows, Linux, Ray Tracing, macOS/iOS, Android, XBOX, PS4, PS5, Switch, Quest 2. ⭐ 5.6k
Physics simulation libraries organized as ECS.
Performance benchmarks comparing ECS frameworks.
- 🔴 CSharpECSComparison - Benchmarks of common ECS Frameworks for C#. ⭐ 53
- 🟢 ECS C# Benchmark - Benchmarks of the main ECS Frameworks for: C#. ⭐ 179
- 🟢 ECS C# Benchmark - Common uses-cases - Benchmark many common use cases in the simplest and most performant variant. ⭐ 47
- 🟡 ecs_benchmark - Benchmarks of common ECS (Entity-Component-System)-Frameworks in C/C++. ⭐ 298
- 🟢 Lua ECS Library Benchmark - Benchmarks of common ECS Frameworks in Lua. ⭐ 9
Articles and blog posts about ECS and data-oriented design.
- Building an ECS
- Data-oriented design
- ECS back and forth
- Entity Systems are the future of MMOG development
- Let's build an Entity Component System from scratch
- Overview of ECS variants & definitions
- Seba's Lab
- Systems Interaction in Entity-Component-System (events)
- Understand data-oriented design
- Unity ECS series
- WickedEngine's ECS implementation
Conference talks and presentations about ECS.
- Codestar 2018 ECS - A Different Approach to Game Development
- CppCon 2014: Mike Acton "Data-Oriented Design and C++"
- CppCon 2018: Stoyan Nikolov “OOP Is Dead, Long Live Data-oriented Design”
- Data Oriented Design Resources
- Data Oriented GUI in Rust
- GDC 2018: Unity at GDC - A Data Oriented Approach to Using Component Systems
- Is There More to Game Architecture than ECS - Bob Nystrom (Roguelike Celebration 2018)
- itCppCon19: ECS back and forth
- Meeting C++ 2018: Data oriented design in practice
- Unite 2018: C# Job System + ECS usage and demo with Intel
Books on ECS and data-oriented design.
Tutorial series for learning ECS.
Related curated lists.
Other ECS-related resources.
Contributions are very welcome! Please read the contribution guidelines first. Also, please feel free to report any error.
