FLECS, the Fast Lightweight Entity Component System, is a recently released open source C99 based framework for creating games and applications using the ECS design pattern. It is an exceptionally well documented library, with several examples as well as a complete web based interface for profiling and debugging entities in your game world!
FLECS is described as:
Flecs is a Fast and Lightweight ECS. Flecs packs as much punch as possible into a small library with a tiny C99 API and zero dependencies. Here are some of the things it can do:
- Process entities on multiple threads with a lock-free, zero-overhead staging architecture
- Organize components & systems in reusable, library-friendly modules
- Run systems every frame, periodically, on demand or on change events
Additionally, flecs has a flexible engine that lets you do many things, like:
- An expressive prefab system with prefab variants, component overrides and nested prefabs
- Create specific system expressions with AND, OR, NOT and optional operators
- Create hierarchies, indexes and DAGs with container entities
The code is released under the liberal MIT open source license, while the web dashboard is under the more restrictive GPL v3 open source license. As mentioned earlier, FLECS has excellent documentation available here as well as a wealth of samples available here. The developer also has several full featured code samples available in their own repositories including a pong game and more available here. Finally the dashboard is in a separate repository available here.
You can learn more about FLECS in the video below.