
PyECS is a high-performance, type-safe Entity Component System (ECS) implementation in Python with runtime validation via beartype.
Full documentation is available at brodycritchlow.github.io/pyecs
- Type-safe - Runtime type checking with beartype ensures component and system integrity
- Fast - Archetype-based storage for efficient component queries
- Pythonic - Clean, intuitive API that follows Python conventions
- Pure Python - No C extensions or complex dependencies
- Well-tested - Comprehensive test suite with high coverage
- Exception-based error handling - Optional unsafe operations that raise exceptions instead of returning status codes
pip install pyecs
git clone https://github.com/brodycritchlow/pyecs.git
cd pyecs
python -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activate
pip install -r requirements-dev.txt
pip install -e .
pip install -e ".[docs]"
make docs-build
make docs-serve
Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Type safety powered by beartype