finds.dev← search

// the find

skypjack/entt

★ 12,897 · C++ · MIT · updated Jul 2026

Gaming meets modern C++ - a fast and reliable entity component system (ECS) and much more

EnTT is a header-only ECS library for C++ game development, actively maintained since 2017 and used in production by Minecraft and ArcGIS. It has grown well beyond pure ECS into a general-purpose game programming toolkit with reflection, signals, resource management, and a cooperative scheduler. If you're writing a game engine or simulation in modern C++, this is the most mature option in the space.

The sparse-set architecture gives genuinely fast iteration — components of a given type are stored contiguously, so iterating a view is a cache-friendly linear scan. The runtime reflection system is macro-free and non-intrusive, which is rare for C++ and means you're not fighting the library when using it with existing types. Groups allow you to lock multiple component types into perfect SoA layout for the hottest paths, which is a real performance tool not just a marketing claim. Support across vcpkg, Conan, Bazel, build2, and FetchContent means it drops into any existing build without ceremony.

The library has grown into a kitchen-sink toolkit — ECS plus signals, resource caches, process schedulers, a service locator, static polymorphism helpers — and the boundary between 'related game primitives' and 'random utilities bundled for convenience' has blurred. Groups require ownership of the component types across all registries that use them, which creates subtle constraints that bite you when your architecture grows. The meta/reflection system is powerful but its registration API is verbose and the documentation, while thorough, assumes you're already comfortable reading template-heavy headers. Snapshot/serialization support is present but thin — it handles entity/component state but you're on your own for versioning saved data.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →