Skip to content

brodycritchlow/PyECS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation





PyECS is a high-performance, type-safe Entity Component System (ECS) implementation in Python with runtime validation via beartype.

Python License ECS Ruff Documentation CI codecov



Documentation

Full documentation is available at brodycritchlow.github.io/pyecs

Features

  • 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

Quick Start

Installation

pip install pyecs

Development

Setup Development Environment

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 .

Building Documentation

pip install -e ".[docs]"

make docs-build
make docs-serve

Contributing

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.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments


About

No description or website provided.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •