This article lives in:

In very short

The future of FastAPI and Pydantic is bright. ✨

This is because we all, as the Python community, define their future. To help us and to help others. From the Core Developers making Python itself to the new developers that started learning Python this month.

And as long as these tools are helping us all solve problems, help ourselves, help others, and be more efficient and productive, we all will keep them working and improving.

And that’s what we are all doing. 🤓🚀


You might have heard not long ago about PEP 563…

This article lives in:


Let’s say you have a FastAPI application… or actually, any other type of web application, including a Panel dashboard with Pandas DataFrames and Bokeh visualizations, or a Streamlit application. These are, in the end, web applications. You could think of many other examples.

Now let’s say it all works well locally, on your machine.

But in most cases, the purpose of these web apps is to be available on the real web (not only on your machine), so that others can actually access them.

So you need to “deploy” them somewhere, on a…

This article lives in:


FastAPI version 0.62.0 comes with global dependencies that you can apply to a whole application.

As well as top-level dependencies, tags, and other parameters for APIRouters, that before were available only on app.include_router().

This makes it easier to put configurations and dependencies (e.g. for authentication) related to a group of path operations more closely together. 🔒

Let’s start by checking APIRouter...

Include a router

Imagine you had a file with:

from fastapi import APIRouterrouter = APIRouter()
def read_users():
return ["rick", "morty"]

And now let’s say you want to include it in the

This article lives in:


Modern versions of Python (and other languages) have support for “asynchronous code” using something called “coroutines”, with async and await syntax.

Here’s a friendly and not very technical explanation to give some intuition about all that, including asynchronous code, concurrency, and parallelism.

This is taken from the docs for FastAPI, a modern framework for building APIs in Python.

Although this was written for Python and FastAPI, all the story and information is relevant for other languages that also have async and await, like JavaScript and Rust.

This article lives in:

The first FastAPI workshop at PyCon Belarus

Last weekend I had the chance to go to PyCon Belarus, I had a great time and met a lot of great people.

I gave a talk there:

And a workshop with about 60 people:

Creating the workshop

When creating the workshop I got a bit excited and created too much content for the time I had available.

The final app ended up having basic OAuth2 authentication, authorization handling with dependencies, tests with full coverage, etc.

I “gave” a test trial of the full workshop to Camila and the total time was about 9…

Here’s a tip to help you get started contributing to open source (if you haven’t started yet).

This article lives in:


(too long, didn’t read)

Newbies are great at docs, better than maintainers. Start with that.

Find a problem

First, find a problem that you want to solve, something that you care about.

If you see you can solve it easily without technology, cool, go and do that. And come back with a new problem ;)

Then find how technology could help to solve it, what kind of app or system would help.

Find a project

Then find an open source project that…

FastAPI is a modern, fast (high-performance), web framework for building APIs with Python 3.6+ based on standard Python type hints.

This article lives in:


I have been avoiding the creation of a new framework for several years. First I tried to solve all the features covered by FastAPI using many different frameworks, plug-ins, and tools.

But at some point, there was no other option than creating something that provided all these features, taking the best ideas from previous tools, and combining them in the best way possible, using language features that weren’t even available before…

This article lives in:


Let’s say you already set up a Docker Swarm mode cluster as described in, with a Traefik distributed HTTPS proxy.

Here’s how you can set up Swarmprom to monitor your cluster.

It will allow you to:

Swarmprom is actually just a set of tools pre-configured in a smart…

This article lives in:


So, you have a Docker Swarm mode cluster set up as described in

Now you can add a main, distributed, Traefik load balancer/proxy to:

This article lives in:


I created to put these and related ideas together.

And there’s an updated version of this article, with distributed Traefik and Consul (this article is for a single node Traefik, even when running in a cluster):


If you want to have a distributed Traefik HTTPS proxy/load-balancer, you should check instead the guide for the distributed version on Traefik Proxy with HTTPS. It can also run on a single node.

This is the old version, having a Traefik instance on a single node. …

Sebastián Ramírez

Creator of FastAPI and Typer. Dev at Exposion AI. APIs, Deep Learning/Machine Learning, full-stack distributed systems, SQL/NoSQL, Python, Docker, JS, TS, etc.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store