-
Notifications
You must be signed in to change notification settings - Fork 21
Dev: Technology Stack
Version 3.8 of Python or later is required to run Duffy because previous versions have neither typing.Literal
(which is used in some type hints and API models) nor unittest.mock.AsyncMock
(which is used to mock asynchronous code in tests).
FastAPI, an asynchronous Python web framework, is used as the basis for the current and legacy API web apps. Uvicorn is the ASGI web server running these apps.
SQLAlchemy is an SQL toolkit and object relational mapper. To be future-proof, Duffy uses the new-style query API of upcoming SQLAlchemy 2.0 which is first available in version 1.4 of SQLAlchemy.
Alembic is the database migration toolkit for SQLAlchemy.
Duffy uses the Celery distributed task queue to execute longer-running and scheduled background tasks.
Duffy uses Ansible playbooks (“batteries not included”) to provision and deprovision nodes.
Duffy uses Jinja2 templates to enable filtering/transforming variables in configuration.