Entitas
RepositoryFreeEntitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Capabilities12 decomposed
type-safe entity component api generation via reflection-based code generation
Medium confidenceEntitas uses a code generator (Jenny) that introspects component class definitions marked with IComponent interface and automatically generates type-safe fluent APIs (e.g., entity.AddPosition() instead of generic entity.AddComponent<Position>()). The generator creates context-specific entity classes, matcher factories, and component accessors by parsing C# source files and emitting boilerplate code, eliminating manual repetition while maintaining compile-time safety and IDE autocomplete support.
Uses attribute-driven code generation with Jenny generator that introspects IComponent implementations and emits context-specific entity classes with typed accessors, rather than relying on runtime reflection or manual interface implementation like traditional ECS frameworks
Generates more type-safe and IDE-friendly APIs than reflection-based ECS frameworks (e.g., Arch, Flecs) while maintaining zero runtime overhead compared to hand-written code
multi-context entity lifecycle management with domain separation
Medium confidenceEntitas provides a Context abstraction that acts as a container and lifecycle manager for entities belonging to a specific domain (e.g., GameContext, InputContext, UIContext). Each context maintains its own entity pool, component index, and group cache, allowing developers to logically partition game state and systems. Contexts expose fluent APIs for entity creation, destruction, and querying via matchers, with automatic group updates when entities gain or lose components.
Implements multi-context architecture where each context maintains independent entity pools, component indices, and group caches, enabling logical domain separation without shared mutable state between contexts
Provides cleaner domain separation than single-context ECS frameworks (e.g., Arch) while maintaining better performance than inheritance-based approaches through composition and pooling
component attribute-driven code generation with custom generation rules
Medium confidenceEntitas uses a Jenny code generator that parses component class definitions and their attributes ([Event], [Unique], [ForeignKey], [PrimaryKey], etc.) to generate specialized code. Attributes control code generation behavior, allowing developers to declare component properties without writing boilerplate. The generator supports custom generation rules via plugins, enabling teams to extend code generation for domain-specific needs (e.g., network serialization, UI binding).
Implements attribute-driven code generation with pluggable custom generation rules, allowing teams to extend code generation for domain-specific needs beyond standard ECS boilerplate
More extensible than fixed code generation and more declarative than manual code writing, with plugin architecture enabling custom generation without modifying core framework
fluent entity api with method chaining for component operations
Medium confidenceEntitas provides a fluent API for entity manipulation where component operations (add, remove, replace) can be chained together in a single expression. The generated entity classes expose typed methods like entity.AddPosition(x, y).AddVelocity(vx, vy).IsMoving(true) that return the entity instance, enabling readable, chainable code. This fluent pattern reduces boilerplate and improves code readability compared to imperative component management.
Implements fluent API for entity component operations via generated typed methods that return the entity instance, enabling readable method chaining for entity initialization
More readable than imperative component management and more efficient than builder patterns, with generated methods providing compile-time type safety
reactive system execution with component change event subscriptions
Medium confidenceEntitas implements reactive systems that automatically trigger when entities gain, lose, or replace specific components. Systems subscribe to component change events (OnComponentAdded, OnComponentRemoved, OnComponentReplaced) via matcher-based predicates, and the framework batches these events and executes reactive systems in response. This eliminates manual polling and enables event-driven architecture where systems only run when relevant state changes occur.
Implements reactive systems via component change event subscriptions with automatic batching and frame-synchronized execution, rather than requiring manual polling or observer pattern implementation
More efficient than polling-based systems (e.g., traditional Update() loops) and more declarative than manual observer patterns, reducing boilerplate while improving frame-time consistency
component matcher-based group querying with automatic cache invalidation
Medium confidenceEntitas provides a Matcher class that defines entity query criteria using fluent AllOf/AnyOf/NoneOf predicates, which are compiled into efficient group collections. Groups automatically track entities matching the matcher criteria and update their membership when entities gain or lose components. The framework caches groups by matcher hash to avoid redundant queries, and invalidates caches when component changes occur, ensuring queries always return correct results without manual refresh.
Implements matcher-based group caching with automatic invalidation on component changes, using hash-based matcher compilation to enable efficient reuse of complex queries without manual refresh
More efficient than manual filtering loops and more flexible than pre-defined query types, with automatic cache management eliminating stale query results
entity pooling and memory management with garbage collection optimization
Medium confidenceEntitas implements object pooling for entities and components to minimize garbage collection pressure in Unity's managed environment. When entities are destroyed, they are returned to a pool rather than deallocated, and component instances are reused across entity lifecycle. The framework pre-allocates entity pools based on expected capacity and resets component state on reuse, reducing GC.Alloc calls and frame-time spikes from garbage collection.
Implements entity and component pooling with automatic state reset on reuse, pre-allocation based on capacity hints, and integration with Unity's garbage collection to minimize GC.Alloc calls
Reduces garbage collection pressure more effectively than allocation-per-frame approaches, with explicit pooling control compared to implicit GC-based frameworks
entity index-based fast lookup by component field values
Medium confidenceEntitas provides entity indexing capabilities that create hash-based indices on specific component fields (e.g., index entities by their ID or position). Indices are automatically maintained as entities gain/lose components or component values change, enabling O(1) lookups by field value instead of O(n) group iteration. Developers declare indices via attributes on components, and the code generator creates index management code.
Implements automatic entity indexing on component fields with hash-based O(1) lookups and automatic index maintenance on component changes, declared via code generation attributes
Faster than group iteration for single-value lookups and more automatic than manual dictionary management, with compile-time index declaration preventing runtime errors
monobehaviour integration with entity-component bridge
Medium confidenceEntitas provides integration with Unity's MonoBehaviour system through a bridge pattern that allows MonoBehaviours to interact with ECS entities. Developers can attach MonoBehaviour components to GameObjects and have them communicate with Entitas entities via event systems or direct component access. The framework provides helper classes and patterns for converting between GameObject-based and entity-based representations.
Provides explicit bridge patterns and helper classes for MonoBehaviour-to-entity conversion, enabling gradual migration from GameObject-based to ECS architecture without requiring complete rewrite
More flexible than pure ECS frameworks for hybrid systems, and more structured than ad-hoc MonoBehaviour-ECS integration patterns
visual debugging and entity inspector with real-time state inspection
Medium confidenceEntitas includes editor extensions and visual debugging tools that allow developers to inspect entity state, component values, and group membership in real-time during gameplay. The framework provides an Entity Inspector window in Unity Editor that displays all entities in a context, their components, and component field values, with the ability to add/remove components and modify values directly from the inspector.
Provides integrated Unity Editor inspector for real-time entity state inspection, component modification, and group membership visualization with automatic updates during gameplay
More integrated than manual debug logging and more visual than console-based debugging, enabling faster iteration and understanding of entity state
system execution ordering with manual and automatic dependency resolution
Medium confidenceEntitas provides a system execution framework where developers define systems (ISystem implementations) and control their execution order either manually through explicit ordering or automatically through dependency declaration. Systems can be organized into feature groups and execution phases (Initialize, Execute, Cleanup), and the framework ensures systems execute in the correct order with proper initialization and teardown. Developers can declare system dependencies via interfaces or attributes, and the framework validates and enforces execution order.
Implements dual-mode system execution ordering with both manual explicit ordering and automatic dependency resolution via interface declarations, organized into features and execution phases
More flexible than fixed execution order frameworks and more structured than ad-hoc system management, with explicit dependency declaration preventing silent ordering bugs
event system with entity-scoped and global event publishing
Medium confidenceEntitas provides an event system that allows systems and entities to publish and subscribe to events at both entity scope (events attached to specific entities) and global scope (events broadcast to all listeners). Events are type-safe and can carry arbitrary data, and the framework batches event publishing and dispatch to ensure consistent execution within a frame. Event subscriptions are managed automatically and cleaned up when entities are destroyed.
Implements dual-scope event system with entity-scoped and global events, automatic subscription cleanup on entity destruction, and frame-synchronized batched dispatch
More structured than manual observer patterns and more flexible than direct method calls, with automatic cleanup preventing memory leaks
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with Entitas, ranked by overlap. Discovered automatically through the match graph.
Best of Lovable, Bolt.new, v0.dev, Replit AI, Windsurf, Same.new, Base44, Cursor, Cline: Glyde- Typescript, Javascript, React, ShadCN UI website builder
Top vibe coding AI Agent for building and deploying complete and beautiful website right inside vscode. Trusted by 20k+ developers
Purecode AI - AI Coding Agent for Legacy Codebases
The secure AI coding agent is built for enterprises and legacy codebases with deep codebase awareness. Accelerate legacy modernization, automate .NET Framework to Core migrations, generate enterprise-grade APIs with proper security patterns, rapidly debug complex codebases, and modernize legacy app
Gluestack UI MCP Server
** - An MCP server tailored for React Native–first development using Gluestack UI.
Capacity
Capacity lets you turn your ideas into fully functional web apps in minutes using AI.
Prototyper
Transform ideas into code effortlessly with AI-driven prototyping, collaboration, and versatile framework...
codigo-generator
Code generator
Best For
- ✓C# game developers using Unity who want to reduce boilerplate while maintaining type safety
- ✓Teams building performance-critical games where compile-time guarantees matter
- ✓Developers migrating from inheritance-based architectures to composition-based ECS
- ✓Game developers building complex games with multiple subsystems (gameplay, UI, networking, audio)
- ✓Teams needing clear architectural boundaries between game systems
- ✓Developers optimizing for memory efficiency through entity pooling
- ✓Game developers wanting to reduce boilerplate through attribute-driven code generation
- ✓Teams building custom code generation plugins for domain-specific needs
Known Limitations
- ⚠Code generation runs as a pre-build step, adding ~1-5 seconds to build time depending on component count
- ⚠Generated code must be committed to source control or regenerated on every machine, complicating CI/CD without proper setup
- ⚠Generator only works with C# components; cannot generate for components defined in other .NET languages
- ⚠Changes to component definitions require regeneration; stale generated code can cause runtime errors if not caught
- ⚠Cross-context entity references require manual management; no built-in foreign key constraints between contexts
- ⚠Context switching adds indirection overhead (~5-10% per system update depending on context count)
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Last commit: Dec 30, 2023
About
Entitas is a super fast Entity Component System (ECS) Framework specifically made for C# and Unity
Categories
Alternatives to Entitas
Are you the builder of Entitas?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →