Skip to content

FlameOfUdun/flutter_event_component_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

87 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Flutter Event Component System — Monorepo

A collection of packages, tools, and examples for the Flutter Event-Component-System (ECS) ecosystem.

This repository contains the core ECS runtime, a build_runner generator, an inspector/devtools extension, and benchmark/example projects.

⚠️ Discontinued

This project has been discontinued and is no longer actively maintained.

It has been superseded by Orchestra, which resolves architectural ambiguity and improves developer experience.

The main issue with this project was the use of the term "ECS" (Event Component System), which was frequently mistaken for "Entity Component System", a well-known but fundamentally different pattern.

Please migrate to the new project for ongoing support and updates.

Projects

  • ecs: Core library implementing the Event-Component-System patterns for Flutter (components, events, systems, and widget integration).
  • generator: build_runner code generator that converts declarative ECS feature definitions into concrete classes.
  • inspector: DevTools / inspector tooling for visualizing ECS state and system interactions.
  • benchmark: Benchmark and example Flutter project demonstrating ECS usage.

Repository layout

  • ecs/ — core package and runtime
  • generator/ — code-generator package
  • inspector/ — devtools inspector project
  • benchmark/ — example/benchmark Flutter app

Quick Links

Quick Commands

Run tests (top-level):

dart test

Run the generator in the generator package (example):

cd generator
dart run build_runner build --delete-conflicting-outputs

Publish the generator package to pub.dev (make sure to update version in generator/pubspec.yaml first):

cd generator
dart pub publish

Contributing

Contributions are welcome. Please open issues or PRs in this repository. See each subproject README for package-specific development and testing instructions.

License

This repository is licensed under the Apache 2.0 License. See LICENSE for details.