Installation¶
Meet Arvel¶
Arvel is a web application framework with expressive, elegant syntax. A framework provides a starting point and structure so you can focus on building something amazing while it sweats the details.
Arvel strives to provide an outstanding developer experience while delivering powerful features: a full-featured async ORM, a fluent router, a service container, a CLI, queues, caching, and much more. If you know Laravel, you'll feel right at home — Arvel borrows its shape and conventions, recast for modern async Python.
Prerequisites¶
- Python 3.14+. Check with
python --version. - A package manager. These docs use
uv;pipxandpipalso work.
Installing the CLI¶
Install arvel as a global tool:
Verify it:
Creating a Project¶
arvel new scaffolds a Laravel-shaped project from the packaged skeleton and installs dependencies. Useful flags:
| Flag | Effect |
|---|---|
--no-install | Skip dependency installation |
--python <version> | Pin the project to a Python version constraint (e.g. 3.14) |
--kit <name> | Choose a starter kit. Default: api |
Note
arvel new, every make:* generator, about, and key:generate work outside a project. All other commands require a project directory — one that contains bootstrap/app.py. See the CLI reference.
The Development Server¶
This serves the ASGI app at public.asgi:asgi on http://127.0.0.1:8000 by default. Open http://127.0.0.1:8000/api/healthz:
serve accepts --host (default 127.0.0.1), --port (default 8000), --workers, and --reload. The interactive OpenAPI docs are served by FastAPI at http://127.0.0.1:8000/docs.
The Application Key¶
Encryption, signed URLs, and encrypted cookie sessions need an APP_KEY:
This writes a base64 key to .env. See Encryption.
Optional Extras¶
Arvel ships a slim core. Install drivers and integrations as you need them:
uv add "arvel[all]" # everything
uv add "arvel[redis]" # Redis cache / sessions / queue
uv add "arvel[postgres]" # asyncpg + psycopg
uv add "arvel[sqlite]" # aiosqlite
uv add "arvel[jwt]" # JWT guard
uv add "arvel[mail]" # SMTP mail driver
uv add "arvel[queue]" # Taskiq broker
uv add "arvel[s3]" # S3 storage
uv add "arvel[azure]" # Azure Blob storage
uv add "arvel[gcs]" # Google Cloud Storage
uv add "arvel[broadcasting]" # Reverb WebSocket server
Note
The exact extras available are defined in the framework's pyproject.toml. If an extra you expect is missing, check there.
Next Steps¶
- Quickstart — build your first route, model, and migration.
- Project structure — learn where everything lives.