Getting Started
Prerequisites
| Component | Version | Purpose |
|---|---|---|
| Python | 3.10+ | Running Python examples |
| .NET SDK | 10.0 | Building C#/F# examples |
| Node.js | 20+ | Running TypeScript examples |
| Docker | Latest | Running Virtufin services |
| Dapr CLI | 1.15+ | Service mesh for state store and pub/sub |
Setup Steps
1. Configure Gitea Registry Access
Create a Gitea personal access token with read:packages scope:
cp .env.example .env
# Edit .env:
# GITEA_USERNAME=<your-username>
# GITEA_TOKEN=<your-token>
# ALPACA_API_KEY=<optional>
# ALPACA_API_SECRET=<optional>
source .env
2. Start Virtufin Services
Wait for all services to become healthy:
curl http://localhost:5001/health # API Gateway (HTTP)
curl http://localhost:5001/health # WorkManager (HTTP — different container)
curl http://localhost:5001/health # WebSocketManager (HTTP — different container)
3. Install Dependencies
See Installation for detailed per-language instructions.
4. Run Examples
# Binance CLOB (Python)
cd python && source ../.env
export UV_INDEX_GITEA_USERNAME=$GITEA_USERNAME
export UV_INDEX_GITEA_PASSWORD=$GITEA_TOKEN
uv run python websocketmanager/binance_clob_example.py
# Order Flow Imbalance (Python)
uv run python workmanager/orderflow_imbalance_worker.py
See the examples section for all available examples and their outputs.