# Arch-ECS

## Arch

- [Why Arch?](https://arch-ecs.gitbook.io/arch/readme.md): Arch, a high-performance and bare minimum C# ECS.
- [Concepts](https://arch-ecs.gitbook.io/arch/documentation/concepts.md): ECS, a data oriented architecture bringing flexibility, reusable components and performance to you.
- [World](https://arch-ecs.gitbook.io/arch/documentation/world.md): The World, the place where all Entities live.
- [Entity](https://arch-ecs.gitbook.io/arch/documentation/entity.md): The Entity, an abstract being, equipped with data.
- [Query](https://arch-ecs.gitbook.io/arch/documentation/query.md): The Query, a way to select and iterate entities
- [Archetypes & Chunks](https://arch-ecs.gitbook.io/arch/documentation/archetypes-and-chunks.md): Archetypes & Chunks, the underlying foundation and storage structure.
- [Optimizations](https://arch-ecs.gitbook.io/arch/documentation/optimizations.md): Optimizations, making arch more efficient.
- [Query-Techniques](https://arch-ecs.gitbook.io/arch/documentation/optimizations/query-techniques.md): Query-Techniques, running queries more efficiently.
- [Pass on data](https://arch-ecs.gitbook.io/arch/documentation/optimizations/pass-on-data.md): Passing on data, a way to use data from outside in your queries
- [Batch and Bulk](https://arch-ecs.gitbook.io/arch/documentation/optimizations/batch-and-bulk.md): Batch and Bulk, executing batched commands on all your entities.
- [PURE\_ECS](https://arch-ecs.gitbook.io/arch/documentation/optimizations/pure_ecs.md): PURE\_ECS, making your entities even slimmer and faster.
- [Multithreading](https://arch-ecs.gitbook.io/arch/documentation/optimizations/multithreading.md): Multithreading, the simultaneous iteration and modification of entities for extra speed.
- [EntityData](https://arch-ecs.gitbook.io/arch/documentation/optimizations/entitydata.md): EntityData, a way to access meta data of entities directly.
- [Utilities](https://arch-ecs.gitbook.io/arch/documentation/utilities.md): You are slowly approaching the end of your journey, it's not far now... you ask yourself how you can make the rest of the way easier.
- [Component Registration](https://arch-ecs.gitbook.io/arch/documentation/utilities/component-registration.md): Component Registration, this is how you register and change components in arch.
- [Non-generic API](https://arch-ecs.gitbook.io/arch/documentation/utilities/non-generic-api.md): Non-generic API, so that you can also work easily with types.
- [EntityReference](https://arch-ecs.gitbook.io/arch/documentation/utilities/entityreference.md): EntityReference, keep entities apart.
- [CommandBuffer](https://arch-ecs.gitbook.io/arch/documentation/utilities/commandbuffer.md): CommandBuffer, to record operations and play them back at any time.
- [Events](https://arch-ecs.gitbook.io/arch/documentation/utilities/events.md): Events, so that arch notifies you of everything that happens.
- [Dangerous Extensions](https://arch-ecs.gitbook.io/arch/documentation/utilities/dangerous-extensions.md): Dangerous Extensions, a way to access Archs internals.
- [Arch.Extended](https://arch-ecs.gitbook.io/arch/extensions/page-3.md): Arch.Extended, many useful extensions that take even more work off your hands.
- [Arch.System](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.system.md): Arch.System, a basis for nesting logic in systems.
- [Arch.System.SourceGenerator](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.system.sourcegenerator.md): Arch.System.SourceGenerator, automatically generates queries for you.
- [Arch.EventBus](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.eventbus.md): Arch.EventBus, a high-performance way of sending notifications or events.
- [Arch.AOT.SourceGenerator](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.aot.sourcegenerator.md): Arch.AOT.SourceGenerator, making arch fully AOT compatible.
- [Arch.LowLevel](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.lowlevel.md): Arch.LowLevel, a collection of unmanaged and unsafe collections.
- [Arch.Persistence](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.persistence.md): Arch.Persistence, a tiny persistence framework that supports JSON & Binary.
- [Arch.Relationships](https://arch-ecs.gitbook.io/arch/extensions/page-3/arch.relationships.md): Arch.Relationships, a package to maintain relations between entities.
- [Arch.Samples](https://arch-ecs.gitbook.io/arch/examples-and-guidelines/arch.samples.md): Arch.Samples, a small monogame project showcasing how arch works.
- [Entities in Query](https://arch-ecs.gitbook.io/arch/examples-and-guidelines/page-2.md): Entities in Query, how to handle entities in queries correctly and what to bear in mind.
- [Structural changes](https://arch-ecs.gitbook.io/arch/examples-and-guidelines/structural-changes.md): Structural changes, what you need to consider to avoid shooting yourself in the foot.
- [Unity](https://arch-ecs.gitbook.io/arch/unity.md): Unity and how to use Arch with it.
- [Skylandkingdoms](https://arch-ecs.gitbook.io/arch/projects-using-arch/skylandkingdoms.md): Skylandkingdoms, a in progress city builder game set in a magical fantasy world.
- [Cubetory](https://arch-ecs.gitbook.io/arch/projects-using-arch/cubetory.md): Cubetory, a factory-building game with a deep focus on automation.
- [SS14](https://arch-ecs.gitbook.io/arch/projects-using-arch/ss14.md): SS14, a great space station simulation!
- [EquilibriumEngine-CSharp](https://arch-ecs.gitbook.io/arch/projects-using-arch/equilibriumengine-csharp.md): EquilibriumEngine-CSharp, an small but fast engine!
- [Rougelite-Survivor](https://arch-ecs.gitbook.io/arch/projects-using-arch/rougelite-survivor.md): Rougelite-Survivor, an action-packed c# clone of the hit "vampire survivor".
- [Roadmap](https://arch-ecs.gitbook.io/arch/misc/page-4.md): Roadmap, what comes next?
- [FAQ](https://arch-ecs.gitbook.io/arch/misc/faq.md): FAQ, frequently asked questions.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information, you can query the documentation dynamically by asking a question.
Perform an HTTP GET request on a page URL with the `ask` query parameter:
```
GET https://arch-ecs.gitbook.io/arch/readme.md?ask=<question>
```
The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.
Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
