Awesome Entity Component System

screenshot of Awesome Entity Component System

:sunglasses: A curated list of Entity-Component-System (ECS) libraries and resources

Overview:

The awesome-ecs is a curated list of Entity-Component-System (ECS) libraries and resources. It provides a comprehensive list of ECS libraries and frameworks for different programming languages such as C++, C#, Common Lisp, Dart, Elixir, Python, and Rust. ECS is a design pattern commonly used in game development to manage entities and their components. This list serves as a valuable resource for developers looking for ECS libraries to incorporate into their projects.

Features:

  • C/C++ ECS Libraries:

    • anax: Open source C++ entity system
    • ecs.hpp: A single header C++14 entity component system library
    • ecs.tpp: Experimental C++14 multithreaded compile-time entity-component-system library
    • EntityFu: A simple, fast entity component system written in C++
    • EntityPlus: C++14 entity component system
    • EntityX: Fast and type-safe C++ entity component system
    • entt: Fast and reliable entity-component system
    • flecs: Multithreaded Entity Component System written for C89 & C99
    • gaia-ecs: Fast and type-safe C++17 archetype-based entity component system
    • Ginseng: An ECS library designed for use in games
    • goomy: A tiny, experimental ECS framework
    • kengine: Game engine with an Entity-Component-System (ECS) architecture
    • matter: C++17/20 ECS implementation
    • mustache: A fast, modern C++ entity component system
    • pico_ecs: Single-header and cross-platform ECS
  • C# ECS Libraries:

    • DefaultEcs: ECS for syntax and usage simplicity with maximum performance
    • Svelto.ECS: Lightweight data oriented entity component system framework
    • Arch: A high-performance Archetype & Chunks Entity Component System for game development and data-oriented programming
    • ArchEntitas: The Entity Component System Framework for C# and Unity
    • Entitas: Lightweight C# Entity Component System framework
    • LeoEcsLite: Lightweight C# Entity Component System framework
  • Common Lisp ECS Libraries:

    • beast: Basic Entity/Aspect/System Toolkit
    • cl-ecs: An implementation of the Entity-Component-System pattern mostly used in game development
    • cl-fast-ecs: Blazingly fast Entity-Component-System microframework
  • Dart ECS Library:

    • fast_ecs: Simple and fast Entity-Component-System (ECS) library written in Dart
  • Elixir ECS Library:

    • ECSx: An ECS framework for Elixir
  • Python ECS Library:

    • esper: A lightweight Entity System for Python
  • Rust ECS Libraries:

    • shipyard: Entity Component System written in Rust
    • specs: Parallel entity component system written in Rust
    • legion: High performance Rust ECS library
    • bevy_ecs: Simple to use, ergonomic, fast, massively parallel, opinionated, and featureful ECS library
    • hecs: High-performance, minimalist entity-component-system library

Summary:

The awesome-ecs is a curated list of ECS libraries and resources for different programming languages. It provides developers with a comprehensive list of ECS libraries to choose from, depending on their preferred programming language or platform. By incorporating ECS libraries into their projects, developers can more effectively manage entities and their components, improving the structure and performance of their game development projects or other applications using the ECS pattern.