/hero-app

The Hero app is an example of ultimate setup for async web-service performance.

Primary LanguagePythonMIT LicenseMIT

Hero

FastAPI is a popular package nowadays, and I have decided to share my setup for an async web-server using this framework. The Hero app repository is an example of ultimate setup for async web-service.

Dependencies

Here is a short description of python packages used in the article (just to make a whole picture to save your time):

  1. Poetry - is a tool for dependency management and packaging in Python. It allows you to declare the libraries your project depends on and it will manage (install/update) them for you;
  2. FastAPI - is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints;
  3. Pydantic - Data validation and settings management using Python type hinting;
  4. SQLAlchemy - SQLAlchemy is the Python SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL;
  5. SQLModel - SQLModel is a library for interacting with SQL databases from Python code, with Python objects;
  6. Alembic - Alembic is a lightweight database migration tool for usage with the SQLAlchemy Database Toolkit for Python.

Deployment

Use this command to build Docker container: docker build --build-arg ENV_FILE=".env" -t hero-app -f Dockerfile . And this command to start container: docker run -d -p "8080:80" --name hero-app hero-app