awesome-ecs
π A curated list of Entity-Component-System (ECS) libraries and resources
ECS Libraries
C/C++
- anax - Open source C++ entity system [github ]
- ECS - C++ single-header entity component system library [github ]
- ecs.hpp - A single header C++14 entity component system library [github ]
- ecst - Experimental C++14 multithreaded compile-time entity-compnent-system library [github ]
- EntityFu - A simple, fast entity component system written in C++ [github ]
- EntityPlus - C++14 entity component system [github ]
- EntityX - Fast, type-safe C++ entity component system [github ]
- entt - Fast and reliable entity-component system [github ]
- Flecs - A Multithreaded Entity Component System written for C89 & C99 [github ]
- Gaia-ECS - Fast and type-safe C++17 archetype-based entity component system [github ]
- Ginseng - An ESC library designed for use in games [github ]
- goomy - A tiny, experimental ECS framework [github ]
- Kengine - Game engine with an Entity-Component-System (ECS) architecture [github ]
- matter - C++17/20 ECS implementation [github ]
- mustache - A fast, modern C++ entity component system [github ]
- pico_ecs - Single-header and cross-platform ECS [github ]
C#
- DefaultEcs - ECS for syntax and usage simplicity with maximum performance [github ]
- Svelto.ECS - Lightweight data oriented entity component system framework [github ]
Dart
- Fast ECS - Simple and fast Entity-Component-System (ECS) library written in Dart. [github ]
Python
- esper - A lightweight Entity System for Python [github ]
Rust
- Shipyard - Entity Component System written in Rust [github ]
- Specs - Parallel entity component system written in Rust [github ]
Go
- Arche - An archetype-based Entity Component System for Go [github ]
Lua
- ECS Lua - A fast and easy to use ECS engine for game development [github ]
- tiny-ecs - Entity Component System for Lua that's simple, flexible, and useful [github ]
Java
- Artemis-odb - A continuation of the popular Artemis ECS framework [github ]
JavaScript
- bitECS - Functional, minimal, data-oriented, ultra-high performance ECS library [github ]
- ECSY - Entity Component System for javascript [github ]
Applications powered by ECS
Game Engines
C++
- crown - General purpose data-driven game engine [github ]
- Engine - Basic cross-platform 3D game engine [github ]
- igneous - Open source game engine written in C++ [github ]
- shiva - Modern Cross-Platform C++ Engine with modularity [github ]
- Sparky - Cross-Platform High Performance 2D/3D game engine [github ]
- Usagi - Hierarchical component entity system based game engine [github ]
Rust
- Amethyst - Data-oriented and data-driven game engine written in Rust [github ]
- Bevy - A refreshingly simple data-driven game engine built in Rust [github ]
Graphics Engines
C++
- bs::framework - Modern C++14 library for the development of real-time graphical applications [github ]
Other Resources
Benchmark
- ecs_benchmark: Benchmarks of common ECS (Entity-Component-System)-Frameworks in C/C++
Blog Posts
Talks & Slides
- itCppCon19: ECS back and forth
- GDC 2018: Unity at GDC - A Data Oriented Approach to Using Component Systems
- Meeting C++ 2018: Data oriented design in practice
- CppCon 2018: Stoyan Nikolov βOOP Is Dead, Long Live Data-oriented Designβ
- Data Oriented Design Resources
- Data Oriented GUI in Rust
- Is There More to Game Architecture than ECS - Bob Nystrom (Roguelike Celebration 2018)
- Unite 2018: C# Job System + ECS usage and demo with Intel
- Codestar 2018 ECS - A Different Approach to Game Development
- CppCon 2014: Mike Acton "Data-Oriented Design and C++")