https://github.com/gesee-y/reactiveecs.jl
Reactive ECS to reconcile modularity and performances
https://github.com/gesee-y/reactiveecs.jl
ecs gamedev high-performance julia reactive-programming
Last synced: 12 months ago
JSON representation
Reactive ECS to reconcile modularity and performances
- Host: GitHub
- URL: https://github.com/gesee-y/reactiveecs.jl
- Owner: Gesee-y
- License: mit
- Created: 2025-06-06T20:15:09.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-02T08:15:09.000Z (12 months ago)
- Last Synced: 2025-07-02T09:28:24.659Z (12 months ago)
- Topics: ecs, gamedev, high-performance, julia, reactive-programming
- Language: Julia
- Homepage:
- Size: 330 KB
- Stars: 11
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

*Logo temporaire*
# Reactive ECS in Julia
A high-performance, modular, event-driven ECS (Entity-Component-System) architecture written in Julia. Designed for game engines, simulations, or any data-oriented architecture requiring reactive system dispatching and efficient memory layout.
> The term 'Reactive' refers to the fact that systems react to the presence of data to run their process
---
## Features
- **Data-oriented ECS** with columnar data storage, entities as row, components as columns.
- **Reactive dispatch system**: systems only receive relevant entities each frame.
- **Chunk-based memory layout** for cache efficiency and performance.
- **Multithreading-ready**: systems can process chunks in parallel.
- **Dynamic system subscription** at runtime.
- **Server-ready architecture**: centralized dispatch can scale across networked clients.
- **Benchmark proven** with consistent performance across large entity counts.
---
## Installation
```julia
julia> ]add ReactiveECS
```
For development version
```julia
julia> ] add https://github.com/Gesee-y/ReactiveECS.jl
````
> Replace the URL with the actual GitHub repo link when available.
---
## Architecture Overview
* `Entity`: an ID with a map of named components.
* `Component`: any struct implementing `AbstractComponent`.
* `System`: a process that subscribes to an archetype and operates on matching entities.
* `ECSManager`: the central controller that stores entities, handles subscriptions, and dispatches entity batches to systems.
For a detailled analysis check the [architecture](https://github.com/Gesee-y/ReactiveECS.jl/blob/main/doc/Achitecture.md)
---
## License
MIT License © 2025 \[Kaptue Talom Lael]
---
## Contributing
PRs and issues are welcome. Feel free to open discussions if you plan to adapt this ECS for your own game engine or simulation framework.
---
## Contact
For technical questions, ideas, or contributions:
Email: [gesee37@gmail.com](mailto:gesee37@gmail.com)