Skip to content

SIECS

SIECS is a small archetype ECS library with a compact C23 API, C++23 wrapper, reflection, modules, and an optional REST explorer for tools.

The public user API is exposed by:

The public header is <siecs.h> in all supported language integrations.

The current API is centered around:

ConceptRole
WorldOwns all ECS storage. Create with ecs_init(), destroy with ecs_fini().
Entityecs_entity_t handle created by ecs_new().
ComponentRegistered data type identified by ecs_component_t.
QueryCached matcher over archetype tables.
IteratorBatch iterator returned by ecs_query_iter().
SystemScheduled query callback run by ecs_progress().
ObserverCallback triggered for built-in or custom events.
ModuleImport unit that groups components, systems, and observers.
RelationComponent that stores an entity target, such as ChildOf.
ResourceOne typed value stored on the world, not on entities.
  1. Getting started for a complete minimal program.
  2. ECS theory for the storage and iteration model.
  3. Components and resources for data modeling.
  4. Queries for iteration with ecs_iter_t.
  5. Systems for scheduled logic.
  6. Observers and events for EcsOnAdd, EcsOnRemove, EcsOnSet, and custom events.
  7. Performance guide before writing hot-path code.
  8. API reference for the public symbols.