This page covers everything you need to install and configure before running CROWDio.
| Requirement | Version / Notes |
|---|---|
| Python | 3.10 or newer |
| Operating System | Windows, Linux, or macOS |
| Virtual Environment | Strongly recommended (.venv) |
| Android Studio (optional) | Required only for building the Android worker |
git clone https://github.com/your-org/CROWDio.git
cd CROWDio
=== “Windows”
powershell
python -m venv .venv
.venv\Scripts\activate
=== “Linux / macOS”
bash
python -m venv .venv
source .venv/bin/activate
requirements.txt (Recommended)python -m pip install --upgrade pip
pip install -r requirements.txt
pyproject.tomlpip install -e .
!!! warning “Dependency Sources”
requirements.txt and pyproject.toml are not fully aligned in all environments. Use one source consistently per environment. For development, requirements.txt is the safer choice.
Run a quick sanity check to confirm all core modules are importable:
python -c "import foreman; import pc_worker; import developer_sdk; print('OK')"
Expected output:
OK
CROWDio/
├── foreman/ # Orchestration server, REST API, scheduler, DB layer
│ ├── main.py # Foreman entry point
│ ├── core/ # ws_manager, job_manager, dispatcher, handlers
│ ├── db/ # SQLAlchemy models, migrations
│ └── api/ # FastAPI route definitions
├── pc_worker/ # Desktop worker runtime
│ └── main.py # Worker entry point
├── developer_sdk/ # Client SDK
│ ├── api.py # Public async API surface
│ ├── client.py # CrowdComputeClient class
│ └── decorators.py # @crowdio.task decorator
├── common/ # Protocol, serialization, utilities
│ └── protocol.py # Message type constants
├── evaluation/ # Benchmarking and analysis
│ └── experiments/ # Experiment modules
├── tests/ # Quick-start runners and sample clients
├── requirements.txt
└── pyproject.toml
| Service | Port | Protocol |
|---|---|---|
| Foreman REST API | 8000 |
HTTP |
| Foreman WebSocket | 9000 |
WS |
| Foreman Dashboard | 8000 |
HTTP |
| Foreman API Docs | 8000/docs |
HTTP |
| Model/Artifact Transfer | 8001 |
HTTP (optional) |
Once dependencies are installed, head to Quick Start to run your first distributed job.