{"id":13664589,"url":"https://github.com/Chillu1/CSharpECSComparison","last_synced_at":"2025-04-26T01:32:43.837Z","repository":{"id":37645394,"uuid":"454955077","full_name":"Chillu1/CSharpECSComparison","owner":"Chillu1","description":"Comparison chart for C# ECS solutions/frameworks","archived":false,"fork":false,"pushed_at":"2023-07-18T11:06:35.000Z","size":24,"stargazers_count":50,"open_issues_count":2,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-03T05:22:20.468Z","etag":null,"topics":["csharp","data-oriented","ecs","ecs-framework","entity-component-system","game-development","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit-0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Chillu1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-02-02T22:22:52.000Z","updated_at":"2024-06-30T19:47:59.000Z","dependencies_parsed_at":"2022-08-29T09:10:57.079Z","dependency_job_id":null,"html_url":"https://github.com/Chillu1/CSharpECSComparison","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chillu1%2FCSharpECSComparison","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chillu1%2FCSharpECSComparison/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chillu1%2FCSharpECSComparison/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Chillu1%2FCSharpECSComparison/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Chillu1","download_url":"https://codeload.github.com/Chillu1/CSharpECSComparison/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224022332,"owners_count":17242745,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["csharp","data-oriented","ecs","ecs-framework","entity-component-system","game-development","unity","unity3d"],"created_at":"2024-08-02T05:03:00.626Z","updated_at":"2025-04-26T01:32:43.818Z","avatar_url":"https://github.com/Chillu1.png","language":null,"readme":"# What is this?\r\n\r\nThis is a rough comparison table of all the \"popular\" ECS frameworks written and used in C#.\r\n\r\n# Table\r\n\r\nSupport...  \r\n:heavy_check_mark: **= Full**  \r\n:heavy_check_mark:Ex **= Full with extension**  \r\n:heavy_minus_sign: **= Partial**  \r\n:x: **= None**\r\n\r\n[//]: # (TODO: Link the names to URLS)  \r\n[//]: # (TODO: Ease of use?)  \r\n[//]: # (TODO: Performance benchmarks?)  \r\n[//]: # (TODO: https://github.com/scellecs/morpeh/pull/88)\r\n[//]: # (TODO: https://github.com/Doraku/DefaultEcs/issues/137)\r\n\r\n| Feature                                    | [Leo\u003cbr/\u003eECS]         | [Leo\u003cbr/\u003eEcsLite]     | [Default\u003cbr/\u003eEcs]                | [Svelto\u003cbr/\u003e.ECS]     | [Morpeh]                                   | [Unity\u003cbr/\u003eECS]                 | [Entitas]                   | [chrome\u003cbr/\u003ealex\u003cbr/\u003e/ecs] | [Nano\u003cbr/\u003eECS]                  | [Ego\u003cbr/\u003eCS]        | [actors\u003cbr/\u003e.unity] | Feature                                    |\r\n|--------------------------------------------|-----------------------|-----------------------|----------------------------------|-----------------------|--------------------------------------------|---------------------------------|-----------------------------|----------------------------|---------------------------------|---------------------|---------------------|--------------------------------------------|\r\n| Archetype based                            | :x:                   | :x:                   | :x:                              | :heavy_check_mark:    | :x:                                        | :heavy_check_mark:              | :x:                         | :heavy_check_mark:?        | :x:?                            | :x:                 | :x:                 | Archetype based                            |\r\n| Filter/Query operations                    | Has/Not\u003cbr/\u003e(Inc/Exc) | Has/Not\u003cbr/\u003e(Inc/Exc) | Has/Not\u003cbr/\u003eOr/Nor               |                       | Has/Not\u003cbr/\u003e(With/\u003cbr/\u003eWithout)            | Has/Not/Or\u003cbr/\u003e(All/Any/None)   | Has/Not, Any\u003cbr/\u003e(All/None) | Has/Not, Any               | Has/Not\u003cbr/\u003e(With/\u003cbr/\u003eWithout) | Has                 | Has                 | Filter/Query operations                    |\r\n| Components Type support                    | struct                | struct                | struct\u003cbr/\u003e/class\u003cbr/\u003e/interface | struct\u003cbr/\u003e/interface | struct                                     | struct\u003cbr/\u003e/class               | class                       | struct                     | class                           | class               | class?              | Components Type support                    |\r\n| Code Generation based                      | :x:                   | :x:                   | :x:                              |                       | :x:                                        | :x:                             | :heavy_check_mark:          | :heavy_check_mark:         | :heavy_check_mark:              | :x:                 | :x:                 | Code Generation based                      |\r\n| Dependencies                               | None                  | None                  | None                             | None                  | :heavy_minus_sign:Unity\u003cbr/\u003eOdin Inspector | Unity                           | :heavy_minus_sign:Unity     | Unity                      | Unity                           | Unity               | Unity               | Dependencies                               |\r\n| Engine agnostic                            | :heavy_check_mark:    | :heavy_check_mark:    | :x:?                             | :heavy_check_mark:    | :heavy_minus_sign:                         | :x:                             | :heavy_check_mark:          | :x:                        | :x:                             | :x:                 | :x:                 | Engine agnostic                            |\r\n| Custom Engine Support                      | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :x:                             | :heavy_minus_sign:          | :x:                        | :x:                             | :x:                 | :x:                 | Custom Engine Support                      |\r\n| Threading support                          | :heavy_check_mark:Ex  | :heavy_check_mark:Ex  | :heavy_check_mark:               |                       | :x:                                        |                                 | :heavy_minus_sign:          | :heavy_minus_sign:?        | :x:                             | :x:?                | :heavy_minus_sign:? | Threading support                          |\r\n| World Events/Messages                      | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :x:?                            | :x:                         |                            | :x:?                            | :heavy_check_mark:  | :heavy_check_mark:  | World Events/Messages                      |\r\n| One-Frame Components                       | :heavy_check_mark:    | :heavy_check_mark:    |                                  |                       | :heavy_check_mark:EX                       | :x:?                            | :heavy_check_mark:          |                            |                                 |                     |                     | One-Frame Components                       |\r\n| Dependency Injection\u003cbr/\u003eSupport           | :heavy_check_mark:    | :heavy_check_mark:    | :x:                              |                       | :x:                                        | :x:                             | :x:                         | :x:                        | :x:                             | :x:                 |                     | Dependency Injection\u003cbr/\u003eSupport           |\r\n| Shared Resource                            | :heavy_check_mark:    | :heavy_check_mark:    | :heavy_check_mark:               |                       | :heavy_check_mark:                         | :heavy_check_mark:              | :heavy_check_mark:          |                            |                                 |                     | :heavy_check_mark:  | Shared Resource                            |\r\n| Thread-safe                                | :x:                   | :x:                   | :heavy_minus_sign:               | :heavy_minus_sign:    | :x:                                        | :x:                             | :x:                         | :x:?                       | :x:                             | :x:                 | :x:?                | Thread-safe                                |\r\n| Reactive System                            | :x:                   | :x:                   | :heavy_check_mark:               | :heavy_minus_sign:    | :x:                                        | :x:?                            | :heavy_check_mark:          |                            | :heavy_check_mark:              |                     | :heavy_check_mark:  | Reactive System                            |\r\n| Multiple components of same type on entity | :x:                   | :x:                   | :x:                              | :x:                   | :x:                                        | :x:                             | :x:                         |                            |                                 | :x:                 |                     | Multiple components of same type on entity |\r\n| Components can live without entities       | :x:                   | :x:                   | :heavy_check_mark:               | :x:                   | :x:                                        | :x:                             | :heavy_check_mark:          |                            |                                 |                     |                     | Components can live without entities       |\r\n| Entities can live without components       | :x:                   | :x:                   |                                  | :x:                   | :x:                                        | :heavy_check_mark:              | :heavy_check_mark:          |                            |                                 |                     |                     | Entities can live without components       |\r\n| Unity Editor View support                  | :heavy_check_mark:Ex  | :heavy_check_mark:Ex  | :x:                              | :x:                   | :heavy_check_mark:                         | :heavy_check_mark:              | :heavy_check_mark:          | :heavy_check_mark:         | :heavy_check_mark:              | :heavy_check_mark:  | :heavy_check_mark:  | Unity Editor View support                  |\r\n| Unity Editor Full Integration*             | :x:                   | :x:                   | :x:                              | :x:                   | :heavy_minus_sign:?                        | :x:(WIP)                        | :heavy_check_mark:          |                            | :heavy_check_mark:              | :heavy_check_mark:? |                     | Unity Editor Full Integration*             |\r\n| Unity Burst Compatible                     | :x:                   | :heavy_check_mark:Ex  | :x:                              | :heavy_check_mark:    | :heavy_minus_sign:                         | :heavy_check_mark:              | :x:                         | :heavy_check_mark:         | :x:?                            | :x:?                | :x:                 | Unity Burst Compatible                     |\r\n| Unity Jobs Compatible                      | :x:                   | :heavy_check_mark:Ex  | :x:                              | :heavy_check_mark:    | :heavy_minus_sign:                         | :heavy_check_mark:              | :x:                         | :heavy_check_mark:         | :x:?                            | :x:?                | :heavy_minus_sign:? | Unity Jobs Compatible                      |\r\n| License                                    | MIT                   | MIT                   | MIT-0                            | MIT                   | MIT                                        | Unity\u003cbr/\u003eCompanion\u003cbr/\u003eLicense | MIT                         | MIT                        | MIT                             | MIT                 | MIT                 | License                                    |\r\n| Last Major Version Release Date            | Feb\u003cbr/\u003e2022          | Feb\u003cbr/\u003e2022          | Feb\u003cbr/\u003e2022                     | May\u003cbr/\u003e2023          | May\u003cbr/\u003e2023                               | Sep\u003cbr/\u003e2022                    | Sep\u003cbr/\u003e2022                | Sep\u003cbr/\u003e2020?              | Dec\u003cbr/\u003e2019                    | Mar\u003cbr/\u003e2017        | Jul\u003cbr/\u003e2020        | Last Major Version Release Date            |\r\n|                                            |                       |                       |                                  |                       |                                            |                                 |                             |                            |                                 |                     |                     |                                            |\r\n| Feature                                    | [Leo\u003cbr/\u003eECS]         | [Leo\u003cbr/\u003eEcsLite]     | [Default\u003cbr/\u003eEcs]                | [Svelto\u003cbr/\u003e.ECS]     | [Morpeh]                                   | [Unity\u003cbr/\u003eECS]                 | [Entitas]                   | [chrome\u003cbr/\u003ealex\u003cbr/\u003e/ecs] | [Nano\u003cbr/\u003eECS]                  | [Ego\u003cbr/\u003eCS]        | [actors\u003cbr/\u003e.unity] | Feature                                    |\r\n\r\n*(Unity Editor) Full Integration means that systems \u0026 components can be made, disabled, enabled, and configured in Unity Editor.\r\n\r\n# How can I contribute?\r\nFind a table cell (or multiple) that isn't filled out, and make an issue/pull request about it. While stating why it's true (explanation doesn't have to be very sophisticated or sourced/grounded, most of the time).  \r\nOR  \r\nFind a table cell (or multiple) that has a quesiton mark, and source why it's true/untrue with an issue or pull request. \r\n\r\n# FAQ\r\nQ: Why not split the table?  \r\nA: I think the table isn't big enough for a split to be valuable, and it's easier to check for all the features you'd want with one glance, instead of going back and forth between two tables.\r\n\r\nQ: xECS isn't here, why's that?  \r\nA: Idk, ask about it in a new issue, it might be too niche, or something.\r\n\r\n\r\n[Leo\u003cbr/\u003eECS]: https://github.com/LeoECSCommunity/ecs\r\n[Leo\u003cbr/\u003eEcsLite]: https://github.com/LeoECSCommunity/ecslite\r\n[Entitas]: https://github.com/sschmid/Entitas-CSharp\r\n[Morpeh]: https://github.com/scellecs/morpeh\r\n[Default\u003cbr/\u003eEcs]: https://github.com/Doraku/DefaultEcs\r\n[Unity\u003cbr/\u003eECS]: https://docs.unity3d.com/Packages/com.unity.entities@latest/index.html\r\n[Nano\u003cbr/\u003eECS]: https://github.com/SinyavtsevIlya/NanoECS\r\n[Ego\u003cbr/\u003eCS]: https://github.com/andoowhy/EgoCS\r\n[Svelto\u003cbr/\u003e.ECS]: https://github.com/sebas77/Svelto.ECS\r\n[actors\u003cbr/\u003e.unity]: https://github.com/PixeyeHQ/actors.unity\r\n[chrome\u003cbr/\u003ealex\u003cbr/\u003e/ecs]: https://github.com/chromealex/ecs","funding_links":[],"categories":["miscellaneous","[Other Resources](#contents)"],"sub_categories":["[Benchmarks](#contents)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChillu1%2FCSharpECSComparison","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FChillu1%2FCSharpECSComparison","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FChillu1%2FCSharpECSComparison/lists"}