requirements.txt
text
| 1 | # Core dependencies |
| 2 | fastapi>=0.109.0 |
| 3 | jinja2>=3.1.0 |
| 4 | aiofiles>=23.2.0 |
| 5 | uvicorn[standard]>=0.27.0 |
| 6 | httpx>=0.26.0 |
| 7 | pydantic>=2.5.0 |
| 8 | pydantic-settings>=2.1.0 |
| 9 | websockets>=12.0 |
| 10 | PyJWT>=2.8.0 |
| 11 | |
| 12 | # Database dependencies |
| 13 | sqlalchemy[asyncio]>=2.0.0 |
| 14 | asyncpg>=0.29.0 # PostgreSQL async driver |
| 15 | aiosqlite>=0.19.0 # SQLite async driver (for development) |
| 16 | alembic>=1.13.0 # Database migrations |
| 17 | psycopg2-binary>=2.9.9 # PostgreSQL driver (for Alembic) |
| 18 | |
| 19 | # Security dependencies |
| 20 | slowapi>=0.1.9 # Rate limiting |
| 21 | cryptography>=42.0.0 # AES-256 envelope encryption for webhook secrets at rest |
| 22 | |
| 23 | # AWS S3 for on-demand asset delivery (drum kits, soundfonts) |
| 24 | boto3>=1.34.0 |
| 25 | |
| 26 | mido>=1.3.0 # MIDI file parsing |
| 27 | pyyaml>=6.0.0 # YAML parsing (repo metadata, config files) |
| 28 | |
| 29 | # CLI |
| 30 | typer>=0.9.0 |
| 31 | |
| 32 | # Development dependencies |
| 33 | pytest>=8.0.0 |
| 34 | pytest-asyncio>=0.23.0 |
| 35 | pytest-cov>=4.1.0 |
| 36 | coverage>=7.0.0 |
| 37 | anyio>=4.2.0 |
| 38 | mypy>=1.8.0 |