A fast, portable Entity Component System for Luau optimized for high-performance game development.
jecs is a high-performance Entity Component System (ECS) library built specifically for Luau, the scripting language used in Roblox. It provides a data-oriented architecture for game development, enabling developers to manage complex game entities and their behaviors efficiently while maintaining excellent performance.
Roblox developers using Luau who need a performant, type-safe ECS for managing complex game logic and large numbers of entities in real-time applications.
Developers choose jecs for its exceptional performance (capable of iterating over 800,000 entities at 60 FPS) and its first-class support for entity relationships, which are essential for complex game logic. It is a zero-dependency, rigorously tested library optimized with column-major operations and cache-friendly archetype/SoA storage.
A fast, portable Entity Component System for Luau
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Capable of iterating over 800,000 entities at 60 FPS, as benchmarked in the README, making it ideal for high-demand real-time games in Roblox.
First-class citizen for defining relationships between entities, essential for complex game logic like parent-child hierarchies, as highlighted in the features.
Leverages Luau's type system for a safer API, reducing runtime errors and improving code predictability, which is a core feature mentioned.
Uses archetype-based Structure of Arrays (SoA) for cache-efficient data access, with column-major operations to boost performance, as detailed in the README.
Documentation is primarily accessed by cloning the repository and navigating locally, lacking a centralized online resource, which can slow down onboarding and reference.
Assumes prior knowledge of ECS concepts with minimal hand-holding; the 'how_to' folder is a start, but newcomers might struggle with data-oriented design principles.
Tailored specifically for Luau in Roblox, so it cannot be used in other game engines or programming environments, limiting its portability.
As a zero-dependency, focused library, it lacks a rich ecosystem of pre-built components, requiring more custom implementation compared to more established ECS frameworks.