diff --git a/.github/workflows/issue-manager.yml b/.github/workflows/issue-manager.yml
index bba089c6f..e7f3a5f53 100644
--- a/.github/workflows/issue-manager.yml
+++ b/.github/workflows/issue-manager.yml
@@ -29,6 +29,6 @@ jobs:
env:
GITHUB_CONTEXT: ${{ toJson(github) }}
run: echo "$GITHUB_CONTEXT"
- - uses: tiangolo/issue-manager@75d60679db1ea348f6f6ea1d0e20de80a7c04645 # 0.7.1
+ - uses: tiangolo/issue-manager@dc846170c36eb62fb434b3d943b36399fe240fb5 # 0.8.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.github/workflows/latest-changes.yml b/.github/workflows/latest-changes.yml
index 111b47424..be20c98ae 100644
--- a/.github/workflows/latest-changes.yml
+++ b/.github/workflows/latest-changes.yml
@@ -30,6 +30,7 @@ jobs:
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
+ ref: ${{ github.event.repository.default_branch }}
# To allow latest-changes to commit to the main branch
token: ${{ secrets.FASTAPI_LATEST_CHANGES }} # zizmor: ignore[secrets-outside-env]
persist-credentials: true # required by tiangolo/latest-changes
@@ -39,7 +40,7 @@ jobs:
if: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.debug_enabled == 'true' }}
with:
limit-access-to-actor: true
- - uses: tiangolo/latest-changes@eb3f6e7ff0073896ecb561e774a121de9418fa06 # 0.5.0
+ - uses: tiangolo/latest-changes@c9b73efbc8992ef1a401e4235ea307a8ca8a724b # 0.6.1
with:
token: ${{ secrets.GITHUB_TOKEN }}
latest_changes_file: docs/en/docs/release-notes.md
diff --git a/.github/workflows/notify-translations.yml b/.github/workflows/notify-translations.yml
index aa006978c..261be1a98 100644
--- a/.github/workflows/notify-translations.yml
+++ b/.github/workflows/notify-translations.yml
@@ -32,6 +32,7 @@ jobs:
run: echo "$GITHUB_CONTEXT"
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
+ ref: ${{ github.event.repository.default_branch }}
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
diff --git a/README.md b/README.md
index 03cd90e77..36d262983 100644
--- a/README.md
+++ b/README.md
@@ -66,8 +66,8 @@ The key features are:
-
+
diff --git a/docs/en/data/sponsors.yml b/docs/en/data/sponsors.yml
index ae2c0f6e2..f2e5df571 100644
--- a/docs/en/data/sponsors.yml
+++ b/docs/en/data/sponsors.yml
@@ -51,12 +51,12 @@ silver:
- url: https://dribia.com/en/
title: Dribia - Data Science within your reach
img: /img/sponsors/dribia.png
- - url: https://www.rapidproxy.io/?ref=fastapi
- title: Try RapidProxy for free - Residential Proxies with 90M+ Global IPs. Starting from $0.65/GB for web scraping, automation, and data collection.
- img: /img/sponsors/rapidproxy.png
- url: https://www.bairesdev.com/
title: "BairesDev | Nearshore Software Development & Staff Augmentation Company"
img: /img/sponsors/bairesdev.svg
+ - url: https://tutorcruncher.com/?utm_source=fastapi
+ title: TutorCruncher
+ img: /img/sponsors/tutorcruncher.png
bronze:
# - url: https://testdriven.io/courses/tdd-fastapi/
# title: Learn to build high-quality web apps with best practices
diff --git a/docs/en/data/sponsors_badge.yml b/docs/en/data/sponsors_badge.yml
index d35a4b19f..d2fd7029f 100644
--- a/docs/en/data/sponsors_badge.yml
+++ b/docs/en/data/sponsors_badge.yml
@@ -49,3 +49,4 @@ logins:
- requestly
- greptileai
- talorelowen
+ - tutorcruncher
diff --git a/docs/en/docs/img/sponsors/tutorcruncher.png b/docs/en/docs/img/sponsors/tutorcruncher.png
new file mode 100644
index 000000000..aae58b2f5
Binary files /dev/null and b/docs/en/docs/img/sponsors/tutorcruncher.png differ
diff --git a/docs/en/docs/release-notes.md b/docs/en/docs/release-notes.md
index 2e42ba00f..c2dac0c4c 100644
--- a/docs/en/docs/release-notes.md
+++ b/docs/en/docs/release-notes.md
@@ -7,6 +7,21 @@ hide:
## Latest Changes
+### Translations
+
+* ЁЯМР Update translations for hi (add-missing). PR [#15797](https://github.com/fastapi/fastapi/pull/15797) by [@tiangolo](https://github.com/tiangolo).
+* ЁЯМР Update `llm-prompt.md` for Hindi. PR [#15810](https://github.com/fastapi/fastapi/pull/15810) by [@YuriiMotov](https://github.com/YuriiMotov).
+* ЁЯМР Fix language-specific translation prompt for Russian language. PR [#15924](https://github.com/fastapi/fastapi/pull/15924) by [@YuriiMotov](https://github.com/YuriiMotov).
+
+### Internal
+
+* ЁЯФз Update sponsors: add TutorCruncher. PR [#15947](https://github.com/fastapi/fastapi/pull/15947) by [@tiangolo](https://github.com/tiangolo).
+* ЁЯС╖ Fix notify translations checkout target. PR [#15933](https://github.com/fastapi/fastapi/pull/15933) by [@tiangolo](https://github.com/tiangolo).
+* ЁЯС╖ Fix latest-changes checkout target. PR [#15932](https://github.com/fastapi/fastapi/pull/15932) by [@tiangolo](https://github.com/tiangolo).
+* ЁЯФз Update sponsors: remove RapidProxy. PR [#15929](https://github.com/fastapi/fastapi/pull/15929) by [@tiangolo](https://github.com/tiangolo).
+* тмЖя╕П Update issue-manager to 0.8.1. PR [#15928](https://github.com/fastapi/fastapi/pull/15928) by [@tiangolo](https://github.com/tiangolo).
+* тмЖя╕П Update latest-changes to 0.6.1. PR [#15926](https://github.com/fastapi/fastapi/pull/15926) by [@tiangolo](https://github.com/tiangolo).
+
## 0.139.0 (2026-07-01)
### Features
diff --git a/docs/hi/docs/alternatives.md b/docs/hi/docs/alternatives.md
new file mode 100644
index 000000000..31ca9e107
--- /dev/null
+++ b/docs/hi/docs/alternatives.md
@@ -0,0 +1,485 @@
+# рд╡рд┐рдХрд▓реНрдк, рдкреНрд░реЗрд░рдгрд╛ рдФрд░ рддреБрд▓рдирд╛рдПрдБ { #alternatives-inspiration-and-comparisons }
+
+**FastAPI** рдХреЛ рдХрд┐рд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА, рдпрд╣ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХреИрд╕рд╛ рд╣реИ рдФрд░ рдЙрдирд╕реЗ рдЗрд╕рдиреЗ рдХреНрдпрд╛ рд╕реАрдЦрд╛ред
+
+## рдкрд░рд┐рдЪрдп { #intro }
+
+рджреВрд╕рд░реЛрдВ рдХреЗ рдкрд┐рдЫрд▓реЗ рдХрд╛рдо рдХреЗ рдмрд┐рдирд╛ **FastAPI** рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрддрд╛ред
+
+рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрдИ tools рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреАред
+
+рдореИрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рддрдХ рдПрдХ рдирдпрд╛ framework рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд░рд╣рд╛ред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ **FastAPI** рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╕рднреА features рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ frameworks, plug-ins рдФрд░ tools рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред
+
+рд▓реЗрдХрд┐рди рдПрдХ рд╕рдордп рдРрд╕рд╛ рдЖрдпрд╛ рдЬрдм рдРрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдерд╛ рдЬреЛ рдпреЗ рд╕рднреА features рдкреНрд░рджрд╛рди рдХрд░реЗ, рдкрд┐рдЫрд▓реЗ tools рд╕реЗ рд╕рд░реНрд╡реЛрддреНрддрдо рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд▓реЗрдХрд░, рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдорд┐рд▓рд╛рдХрд░, рдЙрди language features рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЬреЛ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рднреА рдирд╣реАрдВ рдереЗ (Python 3.6+ type hints)ред
+
+## рдкрд┐рдЫрд▓реЗ tools { #previous-tools }
+
+### [Django](https://www.djangoproject.com/) { #django }
+
+рдпрд╣ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Python framework рд╣реИ рдФрд░ рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рднрд░реЛрд╕реЗрдордВрдж рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Instagram рдЬреИрд╕реЗ systems рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдпрд╣ relational databases (рдЬреИрд╕реЗ MySQL рдпрд╛ PostgreSQL) рдХреЗ рд╕рд╛рде рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд tightly coupled рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЦреНрдп store engine рдХреЗ рд░реВрдк рдореЗрдВ NoSQL database (рдЬреИрд╕реЗ Couchbase, MongoDB, Cassandra, рдЖрджрд┐) рд░рдЦрдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИред
+
+рдЗрд╕реЗ backend рдореЗрдВ HTML generate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рди рдХрд┐ рдХрд┐рд╕реА modern frontend (рдЬреИрд╕реЗ React, Vue.js рдФрд░ Angular) рдпрд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдиреНрдп systems (рдЬреИрд╕реЗ IoT devices) рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА APIs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
+
+### [Django REST Framework](https://www.django-rest-framework.org/) { #django-rest-framework }
+
+Django REST Framework рдХреЛ Django рдХреЗ рдКрдкрд░ Web APIs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ flexible toolkit рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рддрд╛рдХрд┐ рдЗрд╕рдХреА API рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╣реЛ рд╕рдХреЗред
+
+рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ Mozilla, Red Hat рдФрд░ Eventbrite рд╕рд╣рд┐рдд рдХрдИ рдХрдВрдкрдирд┐рдпрд╛рдБ рдХрд░рддреА рд╣реИрдВред
+
+рдпрд╣ **automatic API documentation** рдХреЗ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛, рдФрд░ рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди рдкрд╣рд▓реЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬрд┐рд╕рдиреЗ **FastAPI** рдХреА "рдЦреЛрдЬ" рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
+
+/// note | рдиреЛрдЯ
+
+Django REST Framework рдХреЛ Tom Christie рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред рд╡рд╣реА Starlette рдФрд░ Uvicorn рдХреЗ creator рд╣реИрдВ, рдЬрд┐рди рдкрд░ **FastAPI** рдЖрдзрд╛рд░рд┐рдд рд╣реИред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдПрдХ automatic API documentation web user interface рд╣реЛред
+
+///
+
+### [Flask](https://flask.palletsprojects.com) { #flask }
+
+Flask рдПрдХ "microframework" рд╣реИ, рдЗрд╕рдореЗрдВ database integrations рдпрд╛ Django рдореЗрдВ default рд░реВрдк рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реА рдХрдИ рдЪреАрдЬрд╝реЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред
+
+рдпрд╣ simplicity рдФрд░ flexibility рдореБрдЦреНрдп data storage system рдХреЗ рд░реВрдк рдореЗрдВ NoSQL databases рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬрд╝реЗрдВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
+
+рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рдЗрд╕реЗ рд╕реАрдЦрдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд╣рдЬ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ documentation рдХреБрдЫ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдереЛрдбрд╝рд╛ technical рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдорддреМрд░ рдкрд░ рдЙрди рдЕрдиреНрдп applications рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдЬрд░реВрд░реА рдирд╣реАрдВ рдХрд┐ database, user management, рдпрд╛ Django рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ built-in рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдИ features рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛред рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХрдИ features plug-ins рдХреЗ рд╕рд╛рде рдЬреЛрдбрд╝реЗ рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
+
+Parts рдХрд╛ рдпрд╣ decoupling, рдФрд░ рдПрдХ "microframework" рд╣реЛрдирд╛ рдЬрд┐рд╕реЗ рдареАрдХ рд╡рд╣реА рдХрд╡рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП extend рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬрд┐рд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдПрдХ key feature рдерд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред
+
+Flask рдХреА simplicity рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ APIs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ match рд▓рдЧрд╛ред рдЕрдЧрд▓реА рдЪреАрдЬрд╝ рдЬреЛ рдЦреЛрдЬрдиреА рдереА рд╡рд╣ Flask рдХреЗ рд▓рд┐рдП рдПрдХ "Django REST Framework" рдерд╛ред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдПрдХ micro-framework рд╣реЛред рдЖрд╡рд╢реНрдпрдХ tools рдФрд░ parts рдХреЛ mix and match рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рдпрд╛ рдЬрд╛рдПред
+
+рдПрдХ simple рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди routing system рд╣реЛред
+
+///
+
+### [Requests](https://requests.readthedocs.io) { #requests }
+
+**FastAPI** рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ **Requests** рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред рдЙрдирдХрд╛ scope рдмрд╣реБрдд рдЕрд▓рдЧ рд╣реИред
+
+рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ FastAPI application рдХреЗ *рдЕрдВрджрд░* Requests рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рд╛рдорд╛рдиреНрдп рдмрд╛рдд рд╣реЛрдЧреАред
+
+рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, FastAPI рдХреЛ Requests рд╕реЗ рдХрд╛рдлреА рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реАред
+
+**Requests** APIs рдХреЗ рд╕рд╛рде *interact* рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (client рдХреЗ рд░реВрдк рдореЗрдВ) рдПрдХ library рд╣реИ, рдЬрдмрдХрд┐ **FastAPI** APIs *рдмрдирд╛рдиреЗ* рдХреЗ рд▓рд┐рдП (server рдХреЗ рд░реВрдк рдореЗрдВ) рдПрдХ library рд╣реИред
+
+рд╡реЗ рдХрдореЛрдмреЗрд╢ рд╡рд┐рдкрд░реАрдд рд╕рд┐рд░реЛрдВ рдкрд░ рд╣реИрдВ, рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реБрдПред
+
+Requests рдХрд╛ design рдмрд╣реБрдд simple рдФрд░ intuitive рд╣реИ, sensible defaults рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдпрд╣ рдмрд╣реБрдд powerful рдФрд░ customizable рд╣реИред
+
+рдЗрд╕реАрд▓рд┐рдП, рдЬреИрд╕рд╛ рдХрд┐ official website рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ:
+
+> Requests рдЕрдм рддрдХ рдХреЗ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ downloaded Python packages рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ
+
+рдЖрдк рдЗрд╕реЗ рдЬрд┐рд╕ рддрд░рд╣ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рд╡рд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, `GET` request рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рд▓рд┐рдЦреЗрдВрдЧреЗ:
+
+```Python
+response = requests.get("http://example.com/some/url")
+```
+
+FastAPI рдореЗрдВ рдЗрд╕рдХреЗ рд╕рдордХрдХреНрд╖ API *path operation* рдЗрд╕ рддрд░рд╣ рджрд┐рдЦ рд╕рдХрддрд╛ рд╣реИ:
+
+```Python hl_lines="1"
+@app.get("/some/url")
+def read_url():
+ return {"message": "Hello World"}
+```
+
+`requests.get(...)` рдФрд░ `@app.get(...)` рдореЗрдВ рд╕рдорд╛рдирддрд╛рдПрдБ рджреЗрдЦреЗрдВред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+* рдПрдХ simple рдФрд░ intuitive API рд╣реЛред
+* HTTP method names (operations) рдХреЛ рд╕реАрдзреЗ, straightforward рдФрд░ intuitive рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
+* sensible defaults рд╣реЛрдВ, рд▓реЗрдХрд┐рди powerful customizations рднреА рд╣реЛрдВред
+
+///
+
+### [Swagger](https://swagger.io/) / [OpenAPI](https://github.com/OAI/OpenAPI-Specification/) { #swagger-openapi }
+
+Django REST Framework рд╕реЗ рдЬреЛ рдореБрдЦреНрдп feature рдореИрдВ рдЪрд╛рд╣рддрд╛ рдерд╛ рд╡рд╣ automatic API documentation рдерд╛ред
+
+рдлрд┐рд░ рдореБрдЭреЗ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ APIs рдХреЛ document рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП JSON (рдпрд╛ YAML, JSON рдХрд╛ рдПрдХ extension) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ standard рдерд╛, рдЬрд┐рд╕реЗ Swagger рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛ред
+
+рдФрд░ Swagger APIs рдХреЗ рд▓рд┐рдП рдПрдХ web user interface рдкрд╣рд▓реЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛ рдЪреБрдХрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА API рдХреЗ рд▓рд┐рдП Swagger documentation generate рдХрд░ рдкрд╛рдирд╛ рдЗрд╕ web user interface рдХрд╛ automatically рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ред
+
+рдПрдХ рд╕рдордп рдкрд░, Swagger рдХреЛ Linux Foundation рдХреЛ рджреЗ рджрд┐рдпрд╛ рдЧрдпрд╛, рддрд╛рдХрд┐ рдЙрд╕рдХрд╛ рдирд╛рдо рдмрджрд▓рдХрд░ OpenAPI рд░рдЦрд╛ рдЬрд╛ рд╕рдХреЗред
+
+рдЗрд╕реАрд▓рд┐рдП version 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╕рдордп "Swagger" рдХрд╣рдирд╛ рдЖрдо рд╣реИ, рдФрд░ version 3+ рдХреЗ рд▓рд┐рдП "OpenAPI"ред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+Custom schema рдХреЗ рдмрдЬрд╛рдп API specifications рдХреЗ рд▓рд┐рдП рдПрдХ open standard рдЕрдкрдирд╛рдпрд╛ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
+
+рдФрд░ standards-based user interface tools рдХреЛ integrate рдХрд┐рдпрд╛ рдЬрд╛рдП:
+
+* [Swagger UI](https://github.com/swagger-api/swagger-ui)
+* [ReDoc](https://github.com/Rebilly/ReDoc)
+
+рдЗрди рджреЛрдиреЛрдВ рдХреЛ рдЗрд╕рд▓рд┐рдП рдЪреБрдирд╛ рдЧрдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рдХрд╛рдлреА popular рдФрд░ stable рдереЗ, рд▓реЗрдХрд┐рди рдПрдХ quick search рдХрд░рдиреЗ рдкрд░, рдЖрдк OpenAPI рдХреЗ рд▓рд┐рдП рджрд░реНрдЬрдиреЛрдВ alternative user interfaces рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ (рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк **FastAPI** рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред
+
+///
+
+### Flask REST frameworks { #flask-rest-frameworks }
+
+рдХрдИ Flask REST frameworks рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдирдХреА рдЬрд╛рдБрдЪ рдореЗрдВ рд╕рдордп рдФрд░ рдХрд╛рдо рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдХрдИ discontinue рдпрд╛ abandon рд╣реЛ рдЪреБрдХреЗ рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рдХрдИ unresolved issues рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдкрдпреБрдХреНрдд рдмрдирд╛ рджрд┐рдпрд╛ред
+
+### [Marshmallow](https://marshmallow.readthedocs.io/en/stable/) { #marshmallow }
+
+API systems рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдореБрдЦреНрдп features рдореЗрдВ рд╕реЗ рдПрдХ data "serialization" рд╣реИ, рдЬрд┐рд╕рдореЗрдВ code (Python) рд╕реЗ data рд▓реЗрдХрд░ рдЙрд╕реЗ рдРрд╕реА рдЪреАрдЬрд╝ рдореЗрдВ рдмрджрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ network рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, database рд╕реЗ data рд░рдЦрдиреЗ рд╡рд╛рд▓реЗ object рдХреЛ JSON object рдореЗрдВ рдмрджрд▓рдирд╛ред `datetime` objects рдХреЛ strings рдореЗрдВ рдмрджрд▓рдирд╛, рдЖрджрд┐ред
+
+APIs рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдФрд░ рдмрдбрд╝рд╛ feature data validation рд╣реИ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдХрд┐ data рдирд┐рд╢реНрдЪрд┐рдд parameters рдХреЗ рдЕрдиреБрд╕рд╛рд░ valid рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрдИ field `int` рд╣реИ, рдХреЛрдИ random string рдирд╣реАрдВред рдпрд╣ incoming data рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИред
+
+Data validation system рдХреЗ рдмрд┐рдирд╛, рдЖрдкрдХреЛ рд╕рднреА checks рд╣рд╛рде рд╕реЗ, code рдореЗрдВ рдХрд░рдиреЗ рдкрдбрд╝рддреЗред
+
+рдпреЗ features рд╡рд╣реА рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Marshmallow рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░реАрди library рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдЗрд╕реЗ Python type hints рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП, рд╣рд░ schema рдХреЛ define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ Marshmallow рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП specific utils рдФрд░ classes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+"schemas" рдХреЛ define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП code рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ data types рдФрд░ validation, automatically рдкреНрд░рджрд╛рди рдХрд░реЗред
+
+///
+
+### [Webargs](https://webargs.readthedocs.io/en/latest/) { #webargs }
+
+APIs рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдПрдХ рдФрд░ рдмрдбрд╝рд╛ feature incoming requests рд╕реЗ data parsing рдХрд░рдирд╛ рд╣реИред
+
+Webargs рдПрдХ tool рд╣реИ рдЬрд┐рд╕реЗ Flask рд╕рд╣рд┐рдд рдХрдИ frameworks рдХреЗ рдКрдкрд░ рдпрд╣ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
+
+рдпрд╣ data validation рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ Marshmallow рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЗрд╕реЗ рдЙрдиреНрд╣реАрдВ developers рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред
+
+рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░реАрди tool рд╣реИ рдФрд░ **FastAPI** рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рднреА рдмрд╣реБрдд рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдерд╛ред
+
+/// note | рдиреЛрдЯ
+
+Webargs рдХреЛ рдЙрдиреНрд╣реАрдВ Marshmallow developers рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+Incoming request data рдХрд╛ automatic validation рд╣реЛред
+
+///
+
+### [APISpec](https://apispec.readthedocs.io/en/stable/) { #apispec }
+
+Marshmallow рдФрд░ Webargs plug-ins рдХреЗ рд░реВрдк рдореЗрдВ validation, parsing рдФрд░ serialization рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
+
+рд▓реЗрдХрд┐рди documentation рдЕрднреА рднреА missing рд╣реИред рдлрд┐рд░ APISpec рдмрдирд╛рдпрд╛ рдЧрдпрд╛ред
+
+рдпрд╣ рдХрдИ frameworks рдХреЗ рд▓рд┐рдП рдПрдХ plug-in рд╣реИ (рдФрд░ Starlette рдХреЗ рд▓рд┐рдП рднреА рдПрдХ plug-in рд╣реИ)ред
+
+рдпрд╣ рдЬрд┐рд╕ рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк route handle рдХрд░рдиреЗ рд╡рд╛рд▓реА рдкреНрд░рддреНрдпреЗрдХ function рдХреА docstring рдХреЗ рдЕрдВрджрд░ YAML format рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ schema рдХреА definition рд▓рд┐рдЦрддреЗ рд╣реИрдВред
+
+рдФрд░ рдпрд╣ OpenAPI schemas generate рдХрд░рддрд╛ рд╣реИред
+
+Flask, Starlette, Responder, рдЖрджрд┐ рдореЗрдВ рдпрд╣ рдЗрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдлрд┐рд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдлрд┐рд░ рд╕реЗ Python string (рдПрдХ рдмрдбрд╝рд╛ YAML) рдХреЗ рдЕрдВрджрд░ micro-syntax рд╣реЛрдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред
+
+Editor рдЗрд╕рдореЗрдВ рдЬреНрдпрд╛рджрд╛ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдФрд░ рдЕрдЧрд░ рд╣рдо parameters рдпрд╛ Marshmallow schemas modify рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕ YAML docstring рдХреЛ рднреА modify рдХрд░рдирд╛ рднреВрд▓ рдЬрд╛рддреЗ рд╣реИрдВ, рддреЛ generated schema obsolete рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
+
+/// note | рдиреЛрдЯ
+
+APISpec рдХреЛ рдЙрдиреНрд╣реАрдВ Marshmallow developers рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+APIs рдХреЗ рд▓рд┐рдП open standard, OpenAPI рдХреЛ support рдХрд┐рдпрд╛ рдЬрд╛рдПред
+
+///
+
+### [Flask-apispec](https://flask-apispec.readthedocs.io/en/latest/) { #flask-apispec }
+
+рдпрд╣ рдПрдХ Flask plug-in рд╣реИ, рдЬреЛ Webargs, Marshmallow рдФрд░ APISpec рдХреЛ рдПрдХ рд╕рд╛рде рдЬреЛрдбрд╝рддрд╛ рд╣реИред
+
+рдпрд╣ APISpec рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OpenAPI schemas automatically generate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Webargs рдФрд░ Marshmallow рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
+
+рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░реАрди tool рд╣реИ, рдмрд╣реБрдд underratedред рдЗрд╕реЗ рд╡рд╣рд╛рдБ рдореМрдЬреВрдж рдХрдИ Flask plug-ins рд╕реЗ рдХрд╣реАрдВ рдЕрдзрд┐рдХ popular рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╢рд╛рдпрдж рдЗрд╕рдХреА documentation рдХреЗ рдмрд╣реБрдд concise рдФрд░ abstract рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
+
+рдЗрд╕рдиреЗ Python docstrings рдХреЗ рдЕрдВрджрд░ YAML (рдПрдХ рдФрд░ syntax) рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рд╣рд▓ рдХрд░ рджрд┐рдпрд╛ред
+
+Flask, Flask-apispec рдХреЛ Marshmallow рдФрд░ Webargs рдХреЗ рд╕рд╛рде рдорд┐рд▓рд╛рдХрд░ рдпрд╣ combination **FastAPI** рдмрдирд╛рдиреЗ рддрдХ рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ backend stack рдерд╛ред
+
+рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдХрдИ Flask full-stack generators рдмрдиреЗред рдпреЗ рд╡реЗ main stacks рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдореИрдВ (рдФрд░ рдХрдИ external teams) рдЕрдм рддрдХ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ:
+
+* [https://github.com/tiangolo/full-stack](https://github.com/tiangolo/full-stack)
+* [https://github.com/tiangolo/full-stack-flask-couchbase](https://github.com/tiangolo/full-stack-flask-couchbase)
+* [https://github.com/tiangolo/full-stack-flask-couchdb](https://github.com/tiangolo/full-stack-flask-couchdb)
+
+рдФрд░ рдпрд╣реА full-stack generators [**FastAPI** Project Generators](project-generation.md) рдХрд╛ base рдереЗред
+
+/// note | рдиреЛрдЯ
+
+Flask-apispec рдХреЛ рдЙрдиреНрд╣реАрдВ Marshmallow developers рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+OpenAPI schema рдХреЛ automatically generate рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЙрд╕реА code рд╕реЗ рдЬреЛ serialization рдФрд░ validation define рдХрд░рддрд╛ рд╣реИред
+
+///
+
+### [NestJS](https://nestjs.com/) (рдФрд░ [Angular](https://angular.io/)) { #nestjs-and-angular }
+
+рдпрд╣ Python рднреА рдирд╣реАрдВ рд╣реИ, NestJS Angular рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдПрдХ JavaScript (TypeScript) NodeJS framework рд╣реИред
+
+рдпрд╣ рдХреБрдЫ рдРрд╕рд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рддрд╛ рд╣реИ рдЬреЛ Flask-apispec рдХреЗ рд╕рд╛рде рдХрд┐рдП рдЬрд╛ рд╕рдХрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рдо рдЬреИрд╕рд╛ рд╣реИред
+
+рдЗрд╕рдореЗрдВ Angular 2 рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рдПрдХ integrated dependency injection system рд╣реИред рдЗрд╕рдореЗрдВ "injectables" рдХреЛ pre-register рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ (рдЬреИрд╕реЗ рдореБрдЭреЗ рдЬреНрдЮрд╛рдд рд╕рднреА рдЕрдиреНрдп dependency injection systems рдореЗрдВ), рдЗрд╕рд▓рд┐рдП, рдпрд╣ verbosity рдФрд░ code repetition рдмрдврд╝рд╛рддрд╛ рд╣реИред
+
+рдХреНрдпреЛрдВрдХрд┐ parameters рдХреЛ TypeScript types (Python type hints рдХреЗ рд╕рдорд╛рди) рдХреЗ рд╕рд╛рде describe рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, editor support рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ TypeScript data compilation рдХреЗ рдмрд╛рдж JavaScript рдореЗрдВ preserve рдирд╣реАрдВ рд░рд╣рддрд╛, рдпрд╣ validation, serialization рдФрд░ documentation рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдкрд░ define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП types рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред рдЗрд╕рдХреЗ рдХрд╛рд░рдг рдФрд░ рдХреБрдЫ design decisions рдХреЗ рдХрд╛рд░рдг, validation, serialization рдФрд░ automatic schema generation рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рдЬрдЧрд╣ decorators рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХрд╛рдлреА verbose рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдпрд╣ nested models рдХреЛ рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ handle рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдЗрд╕рд▓рд┐рдП, рдЕрдЧрд░ request рдореЗрдВ JSON body рдПрдХ JSON object рд╣реИ рдЬрд┐рд╕рдореЗрдВ inner fields рд╣реИрдВ рдЬреЛ рдЦреБрдж nested JSON objects рд╣реИрдВ, рддреЛ рдЗрд╕реЗ рдареАрдХ рд╕реЗ document рдФрд░ validate рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдмреЗрд╣рддрд░реАрди editor support рдХреЗ рд▓рд┐рдП Python types рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПред
+
+рдПрдХ powerful dependency injection system рд╣реЛред Code repetition рдХреЛ minimize рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрд╛ рдЬрд╛рдПред
+
+///
+
+### [Sanic](https://sanic.readthedocs.io/en/latest/) { #sanic }
+
+рдпрд╣ `asyncio` рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдкрд╣рд▓реЗ рдмреЗрд╣рдж рддреЗрдЬрд╝ Python frameworks рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ред рдЗрд╕реЗ Flask рдХреЗ рдмрд╣реБрдд рд╕рдорд╛рди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред
+
+/// note | рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг
+
+рдЗрд╕рдиреЗ default Python `asyncio` loop рдХреЗ рдмрдЬрд╛рдп [`uvloop`](https://github.com/MagicStack/uvloop) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣реА рдЗрд╕реЗ рдЗрддрдирд╛ рддреЗрдЬрд╝ рдмрдирд╛рддрд╛ рдерд╛ред
+
+рдЗрд╕рдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ Uvicorn рдФрд░ Starlette рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдореЗрдВ open benchmarks рдореЗрдВ Sanic рд╕реЗ рддреЗрдЬрд╝ рд╣реИрдВред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдмреЗрд╣рдж рддреЗрдЬрд╝ performance рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЦреЛрдЬрд╛ рдЬрд╛рдПред
+
+рдЗрд╕реАрд▓рд┐рдП **FastAPI** Starlette рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рддреЗрдЬрд╝ framework рд╣реИ (third-party benchmarks рджреНрд╡рд╛рд░рд╛ tested)ред
+
+///
+
+### [Falcon](https://falconframework.org/) { #falcon }
+
+Falcon рдПрдХ рдФрд░ high performance Python framework рд╣реИ, рдЗрд╕реЗ minimal рд╣реЛрдиреЗ рдФрд░ Hug рдЬреИрд╕реЗ рдЕрдиреНрдп frameworks рдХреА foundation рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП design рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
+
+рдЗрд╕реЗ рдРрд╕реА functions рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП design рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рджреЛ parameters receive рдХрд░рддреА рд╣реИрдВ, рдПрдХ "request" рдФрд░ рдПрдХ "response"ред рдлрд┐рд░ рдЖрдк request рд╕реЗ parts "read" рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ response рдореЗрдВ parts "write" рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ design рдХреЗ рдХрд╛рд░рдг, standard Python type hints рдХреЗ рд╕рд╛рде function parameters рдХреЗ рд░реВрдк рдореЗрдВ request parameters рдФрд░ bodies declare рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
+
+рдЗрд╕рд▓рд┐рдП, data validation, serialization, рдФрд░ documentation рдХреЛ code рдореЗрдВ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, automatically рдирд╣реАрдВред рдпрд╛ рдЙрдиреНрд╣реЗрдВ Falcon рдХреЗ рдКрдкрд░ рдПрдХ framework рдХреЗ рд░реВрдк рдореЗрдВ implement рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рдЬреИрд╕реЗ Hugред рдпрд╣реА рдЕрдВрддрд░ рдЙрди рдЕрдиреНрдп frameworks рдореЗрдВ рднреА рд╣реЛрддрд╛ рд╣реИ рдЬреЛ Falcon рдХреЗ design рд╕реЗ рдкреНрд░реЗрд░рд┐рдд рд╣реИрдВ, рдЬрд╣рд╛рдБ parameters рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ request object рдФрд░ рдПрдХ response object рд╣реЛрддрд╛ рд╣реИред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдмреЗрд╣рддрд░реАрди performance рдкрд╛рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдЦреЛрдЬреЗ рдЬрд╛рдПрдБред
+
+Hug рдХреЗ рд╕рд╛рде (рдХреНрдпреЛрдВрдХрд┐ Hug Falcon рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ) рдЗрд╕рдиреЗ **FastAPI** рдХреЛ functions рдореЗрдВ `response` parameter declare рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
+
+рд╣рд╛рд▓рд╛рдВрдХрд┐ FastAPI рдореЗрдВ рдпрд╣ optional рд╣реИ, рдФрд░ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ headers, cookies, рдФрд░ alternative status codes set рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+///
+
+### [Molten](https://moltenframework.com/) { #molten }
+
+рдореИрдВрдиреЗ **FastAPI** рдмрдирд╛рдиреЗ рдХреЗ рд╢реБрд░реБрдЖрддреА рдЪрд░рдгреЛрдВ рдореЗрдВ Molten рдЦреЛрдЬрд╛ред рдФрд░ рдЗрд╕рдореЗрдВ рдХрд╛рдлреА рд╕рдорд╛рди рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ:
+
+* Python type hints рдкрд░ рдЖрдзрд╛рд░рд┐рддред
+* рдЗрди types рд╕реЗ validation рдФрд░ documentationред
+* Dependency Injection systemред
+
+рдпрд╣ Pydantic рдЬреИрд╕реА data validation, serialization рдФрд░ documentation third-party library рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛, рдЗрд╕рдХреА рдЕрдкрдиреА library рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпреЗ data type definitions рдЙрддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ reusable рдирд╣реАрдВ рд╣реЛрдВрдЧреАред
+
+рдЗрд╕реЗ рдереЛрдбрд╝реА рдЕрдзрд┐рдХ verbose configurations рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ WSGI (ASGI рдХреЗ рдмрдЬрд╛рдп) рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЗрд╕реЗ Uvicorn, Starlette рдФрд░ Sanic рдЬреИрд╕реЗ tools рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП high performance рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП design рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
+
+Dependency injection system рдХреЛ dependencies рдХреА pre-registration рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдФрд░ dependencies declared types рдХреЗ рдЖрдзрд╛рд░ рдкрд░ solve рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рд▓рд┐рдП, рдХрд┐рд╕реА рдирд┐рд╢реНрдЪрд┐рдд type рдХреЛ provide рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ "component" declare рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
+
+Routes рдПрдХ рд╣реА рдЬрдЧрд╣ declare рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рдЬрдЧрд╣реЛрдВ рдкрд░ declared functions рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (decorators рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬрд┐рдиреНрд╣реЗрдВ endpoint handle рдХрд░рдиреЗ рд╡рд╛рд▓реА function рдХреЗ рдареАрдХ рдКрдкрд░ рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рдпрд╣ Flask (рдФрд░ Starlette) рдХреЗ рддрд░реАрдХреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ Django рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдЕрдзрд┐рдХ рдХрд░реАрдм рд╣реИред рдпрд╣ code рдореЗрдВ рдЙрди рдЪреАрдЬрд╝реЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд tightly coupled рд╣реИрдВред
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+Model attributes рдХреЗ "default" value рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ data types рдХреЗ рд▓рд┐рдП extra validations define рдХрд┐рдП рдЬрд╛рдПрдБред рдпрд╣ editor support рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ Pydantic рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рдерд╛ред
+
+рдЗрд╕рдиреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ Pydantic рдХреЗ parts рдХреЛ update рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рддрд╛рдХрд┐ рд╡рд╣реА validation declaration style support рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ (рдпрд╣ рд╕рд╛рд░реА functionality рдЕрдм Pydantic рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИ)ред
+
+///
+
+### [Hug](https://github.com/hugapi/hug) { #hug }
+
+Hug рдЙрди рдкрд╣рд▓реЗ frameworks рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬрд┐рд╕рдиреЗ Python type hints рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ API parameter types рдХреА declaration implement рдХреАред рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░реАрди рд╡рд┐рдЪрд╛рд░ рдерд╛ рдЬрд┐рд╕рдиреЗ рдЕрдиреНрдп tools рдХреЛ рднреА рдРрд╕рд╛ рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
+
+рдЗрд╕рдиреЗ рдЕрдкрдиреА declarations рдореЗрдВ standard Python types рдХреЗ рдмрдЬрд╛рдп custom types рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдПрдХ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдХрджрдо рдЖрдЧреЗ рдерд╛ред
+
+рдпрд╣ рдкреВрд░реЗ API рдХреЛ JSON рдореЗрдВ declare рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ custom schema generate рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдкрд╣рд▓реЗ frameworks рдореЗрдВ рд╕реЗ рднреА рдПрдХ рдерд╛ред
+
+рдпрд╣ OpenAPI рдФрд░ JSON Schema рдЬреИрд╕реЗ standard рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ Swagger UI рдЬреИрд╕реЗ рдЕрдиреНрдп tools рдХреЗ рд╕рд╛рде integrate рдХрд░рдирд╛ straightforward рдирд╣реАрдВ рд╣реЛрддрд╛ред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ рдПрдХ рдмрд╣реБрдд innovative idea рдерд╛ред
+
+рдЗрд╕рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк, uncommon feature рд╣реИ: рдЙрд╕реА framework рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ APIs рдФрд░ CLIs рднреА рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИред
+
+рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ synchronous Python web frameworks (WSGI) рдХреЗ рдкрд┐рдЫрд▓реЗ standard рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдпрд╣ Websockets рдФрд░ рдЕрдиреНрдп рдЪреАрдЬрд╝реЛрдВ рдХреЛ handle рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕рдХрд╛ performance рднреА high рд╣реИред
+
+/// note | рдиреЛрдЯ
+
+Hug рдХреЛ Timothy Crosley рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛, рд╡рд╣реА [`isort`](https://github.com/timothycrosley/isort) рдХреЗ creator рд╣реИрдВ, рдЬреЛ Python files рдореЗрдВ imports рдХреЛ automatically sort рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреЗрд╣рддрд░реАрди tool рд╣реИред
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд┐рдЪрд╛рд░
+
+Hug рдиреЗ APIStar рдХреЗ parts рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛, рдФрд░ APIStar рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдпрд╣ рдЙрди tools рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдореБрдЭреЗ рд╕рдмрд╕реЗ promising рд▓рдЧреЗред
+
+Hug рдиреЗ **FastAPI** рдХреЛ parameters declare рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Python type hints рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ, рдФрд░ API рдХреЛ automatically define рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ schema generate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
+
+Hug рдиреЗ **FastAPI** рдХреЛ headers рдФрд░ cookies set рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП functions рдореЗрдВ `response` parameter declare рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд┐рдпрд╛ред
+
+///
+
+### [APIStar](https://github.com/encode/apistar) (<= 0.5) { #apistar-0-5 }
+
+**FastAPI** рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рд╕реЗ рдареАрдХ рдкрд╣рд▓реЗ рдореБрдЭреЗ **APIStar** server рдорд┐рд▓рд╛ред рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ рд╡рд╣ рд╕рдм рдХреБрдЫ рдерд╛ рдЬрд┐рд╕рдХреА рдореБрдЭреЗ рддрд▓рд╛рд╢ рдереА рдФрд░ рдЗрд╕рдХрд╛ design рдмреЗрд╣рддрд░реАрди рдерд╛ред
+
+рдпрд╣ рдЙрди рдкрд╣рд▓реЗ implementations рдореЗрдВ рд╕реЗ рдПрдХ рдерд╛ рдЬреЛ рдореИрдВрдиреЗ рдХрднреА рджреЗрдЦреЗ, рдЬрд┐рд╕рдореЗрдВ parameters рдФрд░ requests declare рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Python type hints рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ framework рдерд╛ (NestJS рдФрд░ Molten рд╕реЗ рдкрд╣рд▓реЗ)ред рдореБрдЭреЗ рдпрд╣ Hug рдХреЗ рд▓рдЧрднрдЧ рдЙрд╕реА рд╕рдордп рдорд┐рд▓рд╛ред рд▓реЗрдХрд┐рди APIStar рдиреЗ OpenAPI standard рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред
+
+рдЗрд╕рдореЗрдВ рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░ рдЙрдиреНрд╣реАрдВ type hints рдХреЗ рдЖрдзрд╛рд░ рдкрд░ automatic data validation, data serialization рдФрд░ OpenAPI schema generation рдерд╛ред
+
+Body schema definitions Pydantic рдЬреИрд╕реЗ Python type hints рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреА рдереАрдВ, рдпрд╣ Marshmallow рдХреЗ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рд╕рдорд╛рди рдерд╛, рдЗрд╕рд▓рд┐рдП editor support рдЙрддрдирд╛ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, APIStar рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдерд╛ред
+
+рдЙрд╕ рд╕рдордп рдЗрд╕рдХреЗ performance benchmarks рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рдереЗ (рд╕рд┐рд░реНрдл Starlette рдиреЗ surpass рдХрд┐рдпрд╛ рдерд╛)ред
+
+рд╢реБрд░реБрдЖрдд рдореЗрдВ, рдЗрд╕рдореЗрдВ automatic API documentation web UI рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдкрддрд╛ рдерд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдореЗрдВ Swagger UI рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдБред
+
+рдЗрд╕рдореЗрдВ dependency injection system рдерд╛ред рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХрд┐рдП рдЧрдП рдЕрдиреНрдп tools рдХреА рддрд░рд╣, рдЗрд╕рдореЗрдВ components рдХреА pre-registration рдЖрд╡рд╢реНрдпрдХ рдереАред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдпрд╣ рдПрдХ рдмреЗрд╣рддрд░реАрди feature рдерд╛ред
+
+рдореИрдВ рдХрднреА рднреА рдЗрд╕реЗ full project рдореЗрдВ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рдкрд╛рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ security integration рдирд╣реАрдВ рдерд╛, рдЗрд╕рд▓рд┐рдП рдореИрдВ Flask-apispec рдкрд░ рдЖрдзрд╛рд░рд┐рдд full-stack generators рдХреЗ рд╕рд╛рде рдореМрдЬреВрдж рд╕рднреА features рдХреЛ replace рдирд╣реАрдВ рдХрд░ рд╕рдХрд╛ред рдореЗрд░реЗ projects backlog рдореЗрдВ рдЙрд╕ functionality рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓рд╛ pull request рдмрдирд╛рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░ рдерд╛ред
+
+рд▓реЗрдХрд┐рди рдлрд┐рд░, project рдХрд╛ focus shift рд╣реЛ рдЧрдпрд╛ред
+
+рдпрд╣ рдЕрдм API web framework рдирд╣реАрдВ рд░рд╣рд╛, рдХреНрдпреЛрдВрдХрд┐ creator рдХреЛ Starlette рдкрд░ focus рдХрд░рдирд╛ рдерд╛ред
+
+рдЕрдм APIStar OpenAPI specifications validate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tools рдХрд╛ рдПрдХ set рд╣реИ, web framework рдирд╣реАрдВред
+
+/// note | рдиреЛрдЯ
+
+APIStar рдХреЛ Tom Christie рдиреЗ рдмрдирд╛рдпрд╛ рдерд╛ред рд╡рд╣реА рд╡реНрдпрдХреНрддрд┐ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдмрдирд╛рдпрд╛:
+
+* Django REST Framework
+* Starlette (рдЬрд┐рд╕ рдкрд░ **FastAPI** рдЖрдзрд╛рд░рд┐рдд рд╣реИ)
+* Uvicorn (Starlette рдФрд░ **FastAPI** рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
+
+///
+
+/// tip | **FastAPI** рдХреЛ рдЗрд╕рд╕реЗ рдкреНрд░реЗрд░рдгрд╛ рдорд┐рд▓реА рдХрд┐
+
+рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдЖрдПред
+
+рдПрдХ рд╣реА Python types рдХреЗ рд╕рд╛рде рдХрдИ рдЪреАрдЬрд╝реЗрдВ (data validation, serialization рдФрд░ documentation) declare рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдЪрд╛рд░, рдЬреЛ рд╕рд╛рде рд╣реА рдмреЗрд╣рддрд░реАрди editor support рднреА рджреЗрддрд╛ рдерд╛, рдореБрдЭреЗ рдПрдХ рд╢рд╛рдирджрд╛рд░ рд╡рд┐рдЪрд╛рд░ рд▓рдЧрд╛ред
+
+рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд╕рдорд╛рди framework рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдФрд░ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ alternatives рдХреЛ test рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, APIStar рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдерд╛ред
+
+рдлрд┐рд░ APIStar рдиреЗ server рдХреЗ рд░реВрдк рдореЗрдВ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд░рд╣рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ Starlette рдмрдирд╛рдпрд╛ рдЧрдпрд╛, рдФрд░ рдпрд╣ рдРрд╕реЗ system рдХреЗ рд▓рд┐рдП рдПрдХ рдирдИ рдмреЗрд╣рддрд░ foundation рдерд╛ред рдпрд╣реА **FastAPI** рдмрдирд╛рдиреЗ рдХреА рдЕрдВрддрд┐рдо рдкреНрд░реЗрд░рдгрд╛ рдереАред
+
+рдореИрдВ **FastAPI** рдХреЛ APIStar рдХрд╛ "spiritual successor" рдорд╛рдирддрд╛ рд╣реВрдБ, рдЬреЛ рдЗрди рд╕рднреА рдкрд┐рдЫрд▓реЗ tools рд╕реЗ рдорд┐рд▓реА рд╕реАрдЦ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ features, typing system, рдФрд░ рдЕрдиреНрдп parts рдХреЛ improve рдФрд░ increase рдХрд░рддрд╛ рд╣реИред
+
+///
+
+## **FastAPI** рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ { #used-by-fastapi }
+
+### [Pydantic](https://docs.pydantic.dev/) { #pydantic }
+
+Pydantic Python type hints рдХреЗ рдЖрдзрд╛рд░ рдкрд░ data validation, serialization рдФрд░ documentation (JSON Schema рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ library рд╣реИред
+
+рдпрд╣ рдЗрд╕реЗ рдмреЗрд╣рдж intuitive рдмрдирд╛рддрд╛ рд╣реИред
+
+рдпрд╣ Marshmallow рд╕реЗ comparable рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ benchmarks рдореЗрдВ рдпрд╣ Marshmallow рд╕реЗ рддреЗрдЬрд╝ рд╣реИред рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЙрдиреНрд╣реАрдВ Python type hints рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, editor support рдмреЗрд╣рддрд░реАрди рд╣реИред
+
+/// tip | **FastAPI** рдЗрд╕реЗ рдЗрди рдХрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
+
+рд╕рднреА data validation, data serialization рдФрд░ automatic model documentation (JSON Schema рдкрд░ рдЖрдзрд╛рд░рд┐рдд) handle рдХрд░рдирд╛ред
+
+рдлрд┐рд░ **FastAPI** рдЙрд╕ JSON Schema data рдХреЛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ OpenAPI рдореЗрдВ рдбрд╛рд▓рддрд╛ рд╣реИ, рдЙрди рд╕рднреА рдЕрдиреНрдп рдЪреАрдЬрд╝реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЬреЛ рдпрд╣ рдХрд░рддрд╛ рд╣реИред
+
+///
+
+### [Starlette](https://www.starlette.dev/) { #starlette }
+
+Starlette рдПрдХ lightweight ASGI framework/toolkit рд╣реИ, рдЬреЛ high-performance asyncio services рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП ideal рд╣реИред
+
+рдпрд╣ рдмрд╣реБрдд simple рдФрд░ intuitive рд╣реИред рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ extensible рд╣реЛрдиреЗ рдФрд░ modular components рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП design рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
+
+рдЗрд╕рдореЗрдВ рд╣реИ:
+
+* рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡рд╢рд╛рд▓реА performance.
+* WebSocket support.
+* In-process background tasks.
+* Startup рдФрд░ shutdown events.
+* HTTPX рдкрд░ built test client.
+* CORS, GZip, Static Files, Streaming responses.
+* Session рдФрд░ Cookie support.
+* 100% test coverage.
+* 100% type annotated codebase.
+* рдХреБрдЫ hard dependencies.
+
+Starlette рд╡рд░реНрддрдорд╛рди рдореЗрдВ tested рд╕рдмрд╕реЗ рддреЗрдЬрд╝ Python framework рд╣реИред рдХреЗрд╡рд▓ Uvicorn рдиреЗ рдЗрд╕реЗ surpass рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ framework рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ server рд╣реИред
+
+Starlette рд╕рднреА basic web microframework functionality рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдпрд╣ automatic data validation, serialization рдпрд╛ documentation рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ред
+
+рдпрд╣ рдЙрди рдореБрдЦреНрдп рдЪреАрдЬрд╝реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ **FastAPI** рдКрдкрд░ рд╕реЗ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рд╕рдм Python type hints (Pydantic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ) рдкрд░ рдЖрдзрд╛рд░рд┐рддред рдЗрд╕рдХреЗ рд╕рд╛рде dependency injection system, security utilities, OpenAPI schema generation, рдЖрджрд┐ред
+
+/// note | рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг
+
+ASGI рдПрдХ рдирдпрд╛ "standard" рд╣реИ рдЬрд┐рд╕реЗ Django core team members рджреНрд╡рд╛рд░рд╛ develop рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ рдЕрднреА рднреА "Python standard" (рдПрдХ PEP) рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИрдВред
+
+рдлрд┐рд░ рднреА, рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдИ tools рджреНрд╡рд╛рд░рд╛ "standard" рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдпрд╣ interoperability рдХреЛ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдк Uvicorn рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп ASGI server (рдЬреИрд╕реЗ Daphne рдпрд╛ Hypercorn) рд╕реЗ switch рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк ASGI compatible tools, рдЬреИрд╕реЗ `python-socketio`, рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред
+
+///
+
+/// tip | **FastAPI** рдЗрд╕реЗ рдЗрди рдХрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ
+
+рд╕рднреА core web parts рдХреЛ handle рдХрд░рдирд╛ред рдКрдкрд░ рд╕реЗ features рдЬреЛрдбрд╝рдирд╛ред
+
+Class `FastAPI` рдЦреБрдж рд╕реАрдзреЗ class `Starlette` рд╕реЗ inherit рдХрд░рддреА рд╣реИред
+
+рдЗрд╕рд▓рд┐рдП, рдЬреЛ рдХреБрдЫ рднреА рдЖрдк Starlette рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрд╕реЗ рдЖрдк рд╕реАрдзреЗ **FastAPI** рдХреЗ рд╕рд╛рде рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ steroids рдкрд░ Starlette рд╣реИред
+
+///
+
+### [Uvicorn](https://www.uvicorn.dev/) { #uvicorn }
+
+Uvicorn рдПрдХ lightning-fast ASGI server рд╣реИ, рдЬреЛ uvloop рдФрд░ httptools рдкрд░ рдмрдирд╛ рд╣реИред
+
+рдпрд╣ web framework рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ server рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ paths рджреНрд╡рд╛рд░рд╛ routing рдХреЗ рд▓рд┐рдП tools рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ред рдпрд╣ рдРрд╕реА рдЪреАрдЬрд╝ рд╣реИ рдЬреЛ Starlette (рдпрд╛ **FastAPI**) рдЬреИрд╕рд╛ framework рдКрдкрд░ рд╕реЗ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред
+
+рдпрд╣ Starlette рдФрд░ **FastAPI** рдХреЗ рд▓рд┐рдП recommended server рд╣реИред
+
+/// tip | **FastAPI** рдЗрд╕реЗ рдЗрд╕ рд░реВрдк рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХрд░рддрд╛ рд╣реИ
+
+**FastAPI** applications рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП main web serverред
+
+рдЖрдк asynchronous multi-process server рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП `--workers` command line option рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдЕрдзрд┐рдХ рд╡рд┐рд╡рд░рдг [Deployment](deployment/index.md) section рдореЗрдВ рджреЗрдЦреЗрдВред
+
+///
+
+## Benchmarks рдФрд░ speed { #benchmarks-and-speed }
+
+Uvicorn, Starlette рдФрд░ FastAPI рдХреЗ рдмреАрдЪ рд╕рдордЭрдиреЗ, рддреБрд▓рдирд╛ рдХрд░рдиреЗ, рдФрд░ рдЕрдВрддрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, [Benchmarks](benchmarks.md) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ section рджреЗрдЦреЗрдВред
diff --git a/docs/hi/docs/async.md b/docs/hi/docs/async.md
new file mode 100644
index 000000000..8841c92be
--- /dev/null
+++ b/docs/hi/docs/async.md
@@ -0,0 +1,444 @@
+# Concurrency рдФрд░ async / await { #concurrency-and-async-await }
+
+*path operation functions* рдХреЗ рд▓рд┐рдП `async def` syntax рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╡рд░рдг рдФрд░ asynchronous code, concurrency, рдФрд░ parallelism рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдкреГрд╖реНрдарднреВрдорд┐ред
+
+## рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВ? { #in-a-hurry }
+
+TL;DR:
+
+рдЕрдЧрд░ рдЖрдк third party libraries рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ `await` рдХреЗ рд╕рд╛рде call рдХрд░рдиреЗ рдХреЛ рдХрд╣рддреА рд╣реИрдВ, рдЬреИрд╕реЗ:
+
+```Python
+results = await some_library()
+```
+
+рддреЛ, рдЕрдкрдиреЗ *path operation functions* рдХреЛ `async def` рдХреЗ рд╕рд╛рде declare рдХрд░реЗрдВ, рдЬреИрд╕реЗ:
+
+```Python hl_lines="2"
+@app.get('/')
+async def read_results():
+ results = await some_library()
+ return results
+```
+
+/// note | рдиреЛрдЯ
+
+рдЖрдк `await` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ `async def` рдХреЗ рд╕рд╛рде рдмрдирд╛рдП рдЧрдП functions рдХреЗ рдЕрдВрджрд░ рд╣реА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+///
+
+---
+
+рдЕрдЧрд░ рдЖрдк рдРрд╕реА third party library рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рдЪреАрдЬрд╝ (database, API, file system, рдЖрджрд┐) рд╕реЗ communicate рдХрд░рддреА рд╣реИ рдФрд░ `await` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ support рдирд╣реАрдВ рд░рдЦрддреА, (рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрдзрд┐рдХрд╛рдВрд╢ database libraries рдХреЗ рд╕рд╛рде рдпрд╣реА рд╕реНрдерд┐рддрд┐ рд╣реИ), рддреЛ рдЕрдкрдиреЗ *path operation functions* рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдХреЗрд╡рд▓ `def` рдХреЗ рд╕рд╛рде declare рдХрд░реЗрдВ, рдЬреИрд╕реЗ:
+
+```Python hl_lines="2"
+@app.get('/')
+def results():
+ results = some_library()
+ return results
+```
+
+---
+
+рдЕрдЧрд░ рдЖрдкрдХреЗ application рдХреЛ (рдХрд┐рд╕реА рддрд░рд╣) рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рд╕реЗ communicate рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХреЗ response рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рддреЛ `async def` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рднрд▓реЗ рд╣реА рдЖрдкрдХреЛ рдЕрдВрджрд░ `await` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рди рд╣реЛред
+
+---
+
+рдЕрдЧрд░ рдЖрдкрдХреЛ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рд╕рд╛рдорд╛рдиреНрдп `def` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
+
+---
+
+**рдиреЛрдЯ**: рдЖрдк рдЕрдкрдиреА рдЬрд╝рд░реВрд░рдд рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЕрдкрдиреЗ *path operation functions* рдореЗрдВ `def` рдФрд░ `async def` рдХреЛ mix рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╣рд░ рдПрдХ рдХреЛ рдЕрдкрдиреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ option рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ define рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред FastAPI рдЙрдирдХреЗ рд╕рд╛рде рд╕рд╣реА рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
+
+рдХрд┐рд╕реА рднреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдКрдкрд░ рджрд┐рдП рдЧрдП рдХрд┐рд╕реА рднреА case рдореЗрдВ, FastAPI рдлрд┐рд░ рднреА asynchronously рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдмреЗрд╣рдж рддреЗрдЬрд╝ рд╣реЛрдЧрд╛ред
+
+рд▓реЗрдХрд┐рди рдКрдкрд░ рджрд┐рдП рдЧрдП steps рдХреЛ follow рдХрд░рдиреЗ рд╕реЗ, рдпрд╣ рдХреБрдЫ performance optimizations рдХрд░ рдкрд╛рдПрдЧрд╛ред
+
+## рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг { #technical-details }
+
+Python рдХреЗ рдЖрдзреБрдирд┐рдХ versions **"asynchronous code"** рдХрд╛ support рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ **"coroutines"** рдирд╛рдо рдХреА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, **`async` рдФрд░ `await`** syntax рдХреЗ рд╕рд╛рдеред
+
+рдЖрдЗрдП рдиреАрдЪреЗ рдХреЗ sections рдореЗрдВ рдЗрд╕ phrase рдХреЛ рд╣рд┐рд╕реНрд╕реЛрдВ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:
+
+* **Asynchronous Code**
+* **`async` рдФрд░ `await`**
+* **Coroutines**
+
+## Asynchronous Code { #asynchronous-code }
+
+Asynchronous code рдХрд╛ рдорддрд▓рдм рдмрд╕ рдпрд╣ рд╣реИ рдХрд┐ language ЁЯТм рдХреЗ рдкрд╛рд╕ computer / program ЁЯдЦ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ code рдореЗрдВ рдХрд┐рд╕реА point рдкрд░, рдЙрд╕реЗ ЁЯдЦ рдХрд╣реАрдВ рдФрд░ *рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝* рдХреЗ finish рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЙрд╕ *рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝* рдХреЛ "slow-file" ЁЯУЭ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рддреЛ, рдЙрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, computer рдХреЛрдИ рдФрд░ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ "slow-file" ЁЯУЭ finish рд╣реЛ рд░рд╣реА рд╣реЛрддреА рд╣реИред
+
+рдлрд┐рд░ computer / program ЁЯдЦ рд╣рд░ рдмрд╛рд░ рд╡рд╛рдкрд╕ рдЖрдПрдЧрд╛ рдЬрдм рдЙрд╕реЗ рдореМрдХрд╛ рдорд┐рд▓реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдлрд┐рд░ рд╕реЗ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛, рдпрд╛ рдЬрдм рднреА рд╡рд╣ ЁЯдЦ рдЙрд╕ point рдкрд░ рдЕрдкрдирд╛ рд╕рд╛рд░рд╛ рдХрд╛рдо finish рдХрд░ рд▓реЗрдЧрд╛ред рдФрд░ рд╡рд╣ ЁЯдЦ рджреЗрдЦреЗрдЧрд╛ рдХрд┐ рдЬрд┐рди tasks рдХрд╛ рд╡рд╣ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЙрдирдореЗрдВ рд╕реЗ рдХреЛрдИ рдкрд╣рд▓реЗ рд╣реА finish рд╣реЛ рдЪреБрдХрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдлрд┐рд░ рд╡рд╣ рдЬреЛ рднреА рдХрд░рдирд╛ рдерд╛ рдХрд░реЗрдЧрд╛ред
+
+рдЗрд╕рдХреЗ рдмрд╛рдж, рд╡рд╣ ЁЯдЦ finish рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ task рд▓реЗрддрд╛ рд╣реИ (рдорд╛рди рд▓реЗрдВ, рд╣рдорд╛рд░реА "slow-file" ЁЯУЭ) рдФрд░ рдЙрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рднреА рдХрд░рдирд╛ рдерд╛ рдЙрд╕реЗ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИред
+
+рд╡рд╣ "рдХрд┐рд╕реА рдФрд░ рдЪреАрдЬрд╝ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░" рдЖрдо рддреМрд░ рдкрд░ I/O operations рдХреЛ refer рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд "slow" рд╣реЛрддреЗ рд╣реИрдВ (processor рдФрд░ RAM memory рдХреА speed рдХреА рддреБрд▓рдирд╛ рдореЗрдВ), рдЬреИрд╕реЗ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдирд╛:
+
+* client рд╕реЗ data network рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХрд╛
+* рдЖрдкрдХреЗ program рджреНрд╡рд╛рд░рд╛ рднреЗрдЬрд╛ рдЧрдпрд╛ data client рджреНрд╡рд╛рд░рд╛ network рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ receive рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛
+* disk рдкрд░ рдХрд┐рд╕реА file рдХреА contents system рджреНрд╡рд╛рд░рд╛ рдкрдврд╝реЗ рдЬрд╛рдиреЗ рдФрд░ рдЖрдкрдХреЗ program рдХреЛ рджрд┐рдП рдЬрд╛рдиреЗ рдХрд╛
+* рдЖрдкрдХреЗ program рджреНрд╡рд╛рд░рд╛ system рдХреЛ рджреА рдЧрдИ contents disk рдкрд░ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рдХрд╛
+* рдХрд┐рд╕реА remote API operation рдХрд╛
+* рдХрд┐рд╕реА database operation рдХреЗ finish рд╣реЛрдиреЗ рдХрд╛
+* рдХрд┐рд╕реА database query рджреНрд╡рд╛рд░рд╛ results return рдХрд┐рдП рдЬрд╛рдиреЗ рдХрд╛
+* рдЖрджрд┐ред
+
+рдХреНрдпреЛрдВрдХрд┐ execution time рдЬрд╝реНрдпрд╛рджрд╛рддрд░ I/O operations рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рдиреЗ рдореЗрдВ consume рд╣реЛрддрд╛ рд╣реИ, рдЙрдиреНрд╣реЗрдВ "I/O bound" operations рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЗрд╕реЗ "asynchronous" рдЗрд╕рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ computer / program рдХреЛ slow task рдХреЗ рд╕рд╛рде "synchronized" рд╣реЛрдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реЛрддреА, task рдХреЗ finish рд╣реЛрдиреЗ рдХреЗ exact moment рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рднреА рди рдХрд░рддреЗ рд╣реБрдП, рддрд╛рдХрд┐ рд╡рд╣ task result рд▓реЗ рд╕рдХреЗ рдФрд░ рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦ рд╕рдХреЗред
+
+рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, "asynchronous" system рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг, task finish рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, computer / program рдХреЗ рд╡рд╛рдкрд╕ рдЖрдиреЗ рддрдХ рдереЛрдбрд╝рд╛ рд╕рд╛ line рдореЗрдВ wait рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдХреБрдЫ microseconds), рддрд╛рдХрд┐ computer / program рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рдЧрдпрд╛ рдерд╛ рдЙрд╕реЗ finish рдХрд░реЗ, рдФрд░ рдлрд┐рд░ рд╡рд╛рдкрд╕ рдЖрдХрд░ results рд▓реЗ рдФрд░ рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдЬрд╛рд░реА рд░рдЦреЗред
+
+"Synchronous" ("asynchronous" рдХреЗ рд╡рд┐рдкрд░реАрдд) рдХреЗ рд▓рд┐рдП рд╡реЗ рдЖрдорддреМрд░ рдкрд░ "sequential" term рднреА use рдХрд░рддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ computer / program рдХрд┐рд╕реА рдЕрд▓рдЧ task рдкрд░ switch рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ sequence рдореЗрдВ рд╕рднреА steps follow рдХрд░рддрд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЙрди steps рдореЗрдВ рдЗрдВрддрдЬрд╝рд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реЛред
+
+### Concurrency рдФрд░ Burgers { #concurrency-and-burgers }
+
+рдКрдкрд░ describe рдХрд┐рдП рдЧрдП **asynchronous** code рдХреЗ рдЗрд╕ idea рдХреЛ рдХрднреА-рдХрднреА **"concurrency"** рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ **"parallelism"** рд╕реЗ рдЕрд▓рдЧ рд╣реИред
+
+**Concurrency** рдФрд░ **parallelism** рджреЛрдиреЛрдВ "рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪреАрдЬрд╝реЗрдВ рд▓рдЧрднрдЧ рдПрдХ рд╣реА рд╕рдордп рдкрд░ рд╣реЛ рд░рд╣реА рд╣реИрдВ" рд╕реЗ related рд╣реИрдВред
+
+рд▓реЗрдХрд┐рди *concurrency* рдФрд░ *parallelism* рдХреЗ рдмреАрдЪ рдХреЗ details рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИрдВред
+
+рдЕрдВрддрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП, burgers рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд┐рдореНрди story imagine рдХрд░реЗрдВ:
+
+### Concurrent Burgers { #concurrent-burgers }
+
+рдЖрдк рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде fast food рд▓реЗрдиреЗ рдЬрд╛рддреЗ рд╣реИрдВ, рдЖрдк line рдореЗрдВ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ cashier рдЖрдкрдХреЗ рдЖрдЧреЗ рдХреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ orders рд▓реЗ рд░рд╣рд╛ рд╣реЛрддрд╛ рд╣реИред ЁЯШН
+
+
+
+рдлрд┐рд░ рдЖрдкрдХреА рдмрд╛рд░реА рдЖрддреА рд╣реИ, рдЖрдк рдЕрдкрдиреА crush рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП 2 рдмрд╣реБрдд fancy burgers рдХрд╛ order рджреЗрддреЗ рд╣реИрдВред ЁЯНФЁЯНФ
+
+
+
+Cashier kitchen рдореЗрдВ cook рд╕реЗ рдХреБрдЫ рдХрд╣рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рд╣реЛ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ burgers prepare рдХрд░рдиреЗ рд╣реИрдВ (рднрд▓реЗ рд╣реА рд╡реЗ currently previous clients рдХреЗ burgers prepare рдХрд░ рд░рд╣реЗ рд╣реЛрдВ)ред
+
+
+
+рдЖрдк pay рдХрд░рддреЗ рд╣реИрдВред ЁЯТ╕
+
+Cashier рдЖрдкрдХреЛ рдЖрдкрдХреА turn рдХрд╛ number рджреЗрддрд╛ рд╣реИред
+
+
+
+рдЬрдм рдЖрдк wait рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде рдПрдХ table рдЪреБрдирддреЗ рд╣реИрдВ, рдмреИрдарддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА crush рд╕реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ (рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ burgers рдмрд╣реБрдд fancy рд╣реИрдВ рдФрд░ prepare рд╣реЛрдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓реЗрддреЗ рд╣реИрдВ)ред
+
+рдЬрдм рдЖрдк рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде table рдкрд░ рдмреИрдареЗ рд╣реЛрддреЗ рд╣реИрдВ, burgers рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдЖрдк рдЙрд╕ рд╕рдордп рдХреЛ рдпрд╣ admire рдХрд░рдиреЗ рдореЗрдВ spend рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА crush рдХрд┐рддрдиреА awesome, cute рдФрд░ smart рд╣реИ тЬиЁЯШНтЬиред
+
+
+
+Wait рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдЕрдкрдиреА crush рд╕реЗ рдмрд╛рдд рдХрд░рддреЗ рд╣реБрдП, time to time, рдЖрдк counter рдкрд░ displayed number check рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдЖрдкрдХреА turn рдЖ рдЧрдИ рд╣реИред
+
+рдлрд┐рд░ рдХрд┐рд╕реА point рдкрд░, рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдкрдХреА turn рдЖ рдЬрд╛рддреА рд╣реИред рдЖрдк counter рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЕрдкрдиреЗ burgers рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ table рдкрд░ рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВред
+
+
+
+рдЖрдк рдФрд░ рдЖрдкрдХреА crush burgers рдЦрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдЪреНрдЫрд╛ рд╕рдордп рдмрд┐рддрд╛рддреЗ рд╣реИрдВред тЬи
+
+
+
+/// note | рдиреЛрдЯ
+
+рд╕реБрдВрджрд░ illustrations [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot) рджреНрд╡рд╛рд░рд╛ред ЁЯОи
+
+///
+
+---
+
+рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЙрд╕ story рдореЗрдВ рдЖрдк computer / program ЁЯдЦ рд╣реИрдВред
+
+рдЬрдм рдЖрдк line рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдк рдмрд╕ idle ЁЯШ┤ рд╣реЛрддреЗ рд╣реИрдВ, рдЕрдкрдиреА turn рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рдХреБрдЫ рдмрд╣реБрдд "productive" рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗред рд▓реЗрдХрд┐рди line fast рд╣реИ рдХреНрдпреЛрдВрдХрд┐ cashier рдХреЗрд╡рд▓ orders рд▓реЗ рд░рд╣рд╛ рд╣реИ (рдЙрдиреНрд╣реЗрдВ prepare рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛), рдЗрд╕рд▓рд┐рдП рдпрд╣ рдареАрдХ рд╣реИред
+
+рдлрд┐рд░, рдЬрдм рдЖрдкрдХреА turn рдЖрддреА рд╣реИ, рдЖрдк actual "productive" work рдХрд░рддреЗ рд╣реИрдВ, menu process рдХрд░рддреЗ рд╣реИрдВ, decide рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдкрдиреА crush рдХреА choice рд▓реЗрддреЗ рд╣реИрдВ, pay рдХрд░рддреЗ рд╣реИрдВ, check рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк correct bill рдпрд╛ card рджреЗ рд░рд╣реЗ рд╣реИрдВ, check рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрд╕реЗ рд╕рд╣реА charge рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, check рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ order рдореЗрдВ correct items рд╣реИрдВ, рдЖрджрд┐ред
+
+рд▓реЗрдХрд┐рди рдлрд┐рд░, рднрд▓реЗ рд╣реА рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрднреА burgers рдирд╣реАрдВ рд╣реИрдВ, cashier рдХреЗ рд╕рд╛рде рдЖрдкрдХрд╛ work "on pause" тП╕ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ burgers ready рд╣реЛрдиреЗ рдХрд╛ wait ЁЯХЩ рдХрд░рдирд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдЬрдм рдЖрдк counter рд╕реЗ рджреВрд░ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА turn рдХреЗ number рдХреЗ рд╕рд╛рде table рдкрд░ рдмреИрдарддреЗ рд╣реИрдВ, рдЖрдк рдЕрдкрдирд╛ attention рдЕрдкрдиреА crush рдкрд░ switch ЁЯФА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕ рдкрд░ "work" тПп ЁЯдУ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдлрд┐рд░ рдЖрдк рджреЛрдмрд╛рд░рд╛ рдХреБрдЫ рдмрд╣реБрдд "productive" рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдЕрдкрдиреА crush ЁЯШН рдХреЗ рд╕рд╛рде flirtingред
+
+рдлрд┐рд░ cashier ЁЯТБ counter рдХреЗ display рдкрд░ рдЖрдкрдХрд╛ number рдбрд╛рд▓рдХрд░ рдХрд╣рддрд╛ рд╣реИ "рдореИрдВрдиреЗ burgers рдмрдирд╛ рд▓рд┐рдП рд╣реИрдВ", рд▓реЗрдХрд┐рди displayed number рдЖрдкрдХреА turn number рдореЗрдВ рдмрджрд▓рддреЗ рд╣реА рдЖрдк рддреБрд░рдВрдд рдкрд╛рдЧрд▓реЛрдВ рдХреА рддрд░рд╣ jump рдирд╣реАрдВ рдХрд░рддреЗред рдЖрдкрдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЖрдкрдХреЗ burgers рдирд╣реАрдВ рдЪреБрд░рд╛рдПрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдкрдХреА turn рдХрд╛ number рд╣реИ, рдФрд░ рдЙрдирдХреЗ рдкрд╛рд╕ рдЙрдирдХрд╛ред
+
+рддреЛ рдЖрдк рдЕрдкрдиреА crush рдХреЗ story finish рдХрд░рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╝рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ (current work тПп / process рд╣реЛ рд░рд╣рд╛ task ЁЯдУ finish рд╣реЛрдирд╛), gentle smile рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк burgers рд▓реЗрдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ тП╕ред
+
+рдлрд┐рд░ рдЖрдк counter ЁЯФА рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рдЙрд╕ initial task рдкрд░ рдЬреЛ рдЕрдм finish рд╣реЛ рдЪреБрдХрд╛ рд╣реИ тПп, burgers рдЙрдард╛рддреЗ рд╣реИрдВ, thanks рдХрд╣рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ table рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕рд╕реЗ counter рдХреЗ рд╕рд╛рде interaction рдХрд╛ рд╡рд╣ step / task finish рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ тП╣ред рдпрд╣ рдмрджрд▓реЗ рдореЗрдВ, "eating burgers" ЁЯФА тПп рдХрд╛ рдПрдХ рдирдпрд╛ task create рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди "getting burgers" рд╡рд╛рд▓рд╛ previous task finish рд╣реЛ рдЪреБрдХрд╛ рд╣реИ тП╣ред
+
+### Parallel Burgers { #parallel-burgers }
+
+рдЕрдм imagine рдХрд░реЗрдВ рдХрд┐ рдпреЗ "Concurrent Burgers" рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ "Parallel Burgers" рд╣реИрдВред
+
+рдЖрдк рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде parallel fast food рд▓реЗрдиреЗ рдЬрд╛рддреЗ рд╣реИрдВред
+
+рдЖрдк line рдореЗрдВ рдЦрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрдмрдХрд┐ рдХрдИ (рдорд╛рди рд▓реЗрдВ 8) cashiers, рдЬреЛ рдЙрд╕реА рд╕рдордп cooks рднреА рд╣реИрдВ, рдЖрдкрдХреЗ рдЖрдЧреЗ рдХреЗ рд▓реЛрдЧреЛрдВ рд╕реЗ orders рд▓реЗ рд░рд╣реЗ рд╣реЛрддреЗ рд╣реИрдВред
+
+рдЖрдкрд╕реЗ рдкрд╣рд▓реЗ рд╣рд░ рдХреЛрдИ counter рдЫреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЕрдкрдиреЗ burgers ready рд╣реЛрдиреЗ рдХрд╛ wait рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ 8 cashiers рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ next order рд▓реЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рддреБрд░рдВрдд рдЬрд╛рдХрд░ burger prepare рдХрд░рддрд╛ рд╣реИред
+
+
+
+рдлрд┐рд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдкрдХреА turn рдЖрддреА рд╣реИ, рдЖрдк рдЕрдкрдиреА crush рдФрд░ рдЕрдкрдиреЗ рд▓рд┐рдП 2 рдмрд╣реБрдд fancy burgers рдХрд╛ order рджреЗрддреЗ рд╣реИрдВред
+
+рдЖрдк pay рдХрд░рддреЗ рд╣реИрдВ ЁЯТ╕ред
+
+
+
+Cashier kitchen рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЖрдк counter ЁЯХЩ рдХреЗ рд╕рд╛рдордиреЗ рдЦрдбрд╝реЗ рд╣реЛрдХрд░ wait рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЖрдкрд╕реЗ рдкрд╣рд▓реЗ рдХреЛрдИ рдФрд░ рдЖрдкрдХреЗ burgers рди рд▓реЗ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ turns рдХреЗ рд▓рд┐рдП рдХреЛрдИ numbers рдирд╣реАрдВ рд╣реИрдВред
+
+
+
+рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдФрд░ рдЖрдкрдХреА crush рдЗрд╕ рдмрд╛рдд рдореЗрдВ busy рд╣реИрдВ рдХрд┐ рдХреЛрдИ рдЖрдкрдХреЗ рдЖрдЧреЗ рди рдЖ рдЬрд╛рдП рдФрд░ рдЖрдкрдХреЗ burgers рдЖрддреЗ рд╣реА рдЙрдиреНрд╣реЗрдВ рди рд▓реЗ рдЬрд╛рдП, рдЖрдк рдЕрдкрдиреА crush рдкрд░ attention рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗред ЁЯШЮ
+
+рдпрд╣ "synchronous" work рд╣реИ, рдЖрдк cashier/cook ЁЯСитАНЁЯН│ рдХреЗ рд╕рд╛рде "synchronized" рд╣реИрдВред рдЖрдкрдХреЛ wait ЁЯХЩ рдХрд░рдирд╛ рд╣реИ рдФрд░ exact moment рдкрд░ рд╡рд╣рд╛рдБ рд╣реЛрдирд╛ рд╣реИ рдЬрдм cashier/cook ЁЯСитАНЁЯН│ burgers finish рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рджреЗрддрд╛ рд╣реИ, рдирд╣реАрдВ рддреЛ рдХреЛрдИ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд▓реЗ рд╕рдХрддрд╛ рд╣реИред
+
+
+
+рдлрд┐рд░ рдЖрдкрдХрд╛ cashier/cook ЁЯСитАНЁЯН│ рд▓рдВрдмреЗ рд╕рдордп рддрдХ counter рдХреЗ рд╕рд╛рдордиреЗ wait ЁЯХЩ рдХрд░рд╛рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдЦрд┐рд░рдХрд╛рд░ рдЖрдкрдХреЗ burgers рд▓реЗрдХрд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИред
+
+
+
+рдЖрдк рдЕрдкрдиреЗ burgers рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде table рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред
+
+рдЖрдк рдмрд╕ рдЙрдиреНрд╣реЗрдВ рдЦрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХрд╛ рдХрд╛рдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред тП╣
+
+
+
+рдЬрд╝реНрдпрд╛рджрд╛ рдмрд╛рдд рдпрд╛ flirting рдирд╣реАрдВ рд╣реБрдИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрддрд░ рд╕рдордп counter рдХреЗ рд╕рд╛рдордиреЗ wait ЁЯХЩ рдХрд░рдиреЗ рдореЗрдВ spend рд╣реБрдЖред ЁЯШЮ
+
+/// note | рдиреЛрдЯ
+
+рд╕реБрдВрджрд░ illustrations [Ketrina Thompson](https://www.instagram.com/ketrinadrawsalot) рджреНрд╡рд╛рд░рд╛ред ЁЯОи
+
+///
+
+---
+
+Parallel burgers рдХреЗ рдЗрд╕ scenario рдореЗрдВ, рдЖрдк рдПрдХ computer / program ЁЯдЦ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рджреЛ processors рд╣реИрдВ (рдЖрдк рдФрд░ рдЖрдкрдХреА crush), рджреЛрдиреЛрдВ wait ЁЯХЩ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд▓рдВрдмреЗ рд╕рдордп рддрдХ "counter рдкрд░ waiting" ЁЯХЩ рдореЗрдВ рдЕрдкрдирд╛ attention тПп dedicate рдХрд░ рд░рд╣реЗ рд╣реИрдВред
+
+Fast food store рдореЗрдВ 8 processors (cashiers/cooks) рд╣реИрдВред рдЬрдмрдХрд┐ concurrent burgers store рдореЗрдВ рд╢рд╛рдпрдж рдХреЗрд╡рд▓ 2 (рдПрдХ cashier рдФрд░ рдПрдХ cook) рд░рд╣реЗ рд╣реЛрдВрдЧреЗред
+
+рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, final experience рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИред ЁЯШЮ
+
+---
+
+рдпрд╣ burgers рдХреЗ рд▓рд┐рдП parallel equivalent story рд╣реЛрдЧреАред ЁЯНФ
+
+рдЗрд╕рдХреЗ рдПрдХ рдФрд░ "real life" example рдХреЗ рд▓рд┐рдП, рдПрдХ bank imagine рдХрд░реЗрдВред
+
+рд╣рд╛рд▓ рддрдХ, рдЕрдзрд┐рдХрд╛рдВрд╢ banks рдореЗрдВ multiple cashiers ЁЯСитАНЁЯТ╝ЁЯСитАНЁЯТ╝ЁЯСитАНЁЯТ╝ЁЯСитАНЁЯТ╝ рдФрд░ рдПрдХ рдмрдбрд╝реА line ЁЯХЩЁЯХЩЁЯХЩЁЯХЩЁЯХЩЁЯХЩЁЯХЩЁЯХЩ рд╣реЛрддреА рдереАред
+
+рд╕рднреА cashiers рдПрдХ client рдХреЗ рдмрд╛рдж рджреВрд╕рд░реЗ client рдХреЗ рд╕рд╛рде рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрддреЗ рдереЗ ЁЯСитАНЁЯТ╝тПпред
+
+рдФрд░ рдЖрдкрдХреЛ line рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ wait ЁЯХЩ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдпрд╛ рдЖрдк рдЕрдкрдиреА turn рдЦреЛ рджреЗрддреЗ рд╣реИрдВред
+
+рдЖрдк рд╢рд╛рдпрдж рдЕрдкрдиреА crush ЁЯШН рдХреЛ bank ЁЯПж рдореЗрдВ errands рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╕рд╛рде рдирд╣реАрдВ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред
+
+### Burger рдирд┐рд╖реНрдХрд░реНрд╖ { #burger-conclusion }
+
+"рдЕрдкрдиреА crush рдХреЗ рд╕рд╛рде fast food burgers" рдХреЗ рдЗрд╕ scenario рдореЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдмрд╣реБрдд waiting ЁЯХЩ рд╣реИ, concurrent system тП╕ЁЯФАтПп рд░рдЦрдирд╛ рдХрд╣реАрдВ рдЕрдзрд┐рдХ sensible рд╣реИред
+
+рдЕрдзрд┐рдХрд╛рдВрд╢ web applications рдХреЗ рд▓рд┐рдП рдпрд╣реА case рд╣реИред
+
+рдмрд╣реБрдд, рдмрд╣реБрдд рд╕рд╛рд░реЗ users, рд▓реЗрдХрд┐рди рдЖрдкрдХрд╛ server рдЙрдирдХреА not-so-good connection рджреНрд╡рд╛рд░рд╛ рдЙрдирдХреА requests рднреЗрдЬрдиреЗ рдХрд╛ wait ЁЯХЩ рдХрд░ рд░рд╣рд╛ рд╣реИред
+
+рдФрд░ рдлрд┐рд░ responses рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХрд╛ рдлрд┐рд░ рд╕реЗ wait ЁЯХЩ рдХрд░ рд░рд╣рд╛ рд╣реИред
+
+рдпрд╣ "waiting" ЁЯХЩ microseconds рдореЗрдВ measure рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рд╕рдмрдХреЛ рдЬреЛрдбрд╝рдиреЗ рдкрд░, рдЕрдВрдд рдореЗрдВ рдХрд╛рдлреА waiting рд╣реЛ рдЬрд╛рддреА рд╣реИред
+
+рдЗрд╕реАрд▓рд┐рдП web APIs рдХреЗ рд▓рд┐рдП asynchronous тП╕ЁЯФАтПп code use рдХрд░рдирд╛ рдмрд╣реБрдд sensible рд╣реИред
+
+рдЗрд╕реА рддрд░рд╣ рдХреА asynchronicity рдиреЗ NodeJS рдХреЛ popular рдмрдирд╛рдпрд╛ (рднрд▓реЗ рд╣реА NodeJS parallel рдирд╣реАрдВ рд╣реИ) рдФрд░ рдпрд╣реА Go рдХреА programming language рдХреЗ рд░реВрдк рдореЗрдВ strength рд╣реИред
+
+рдФрд░ рдпрд╣реА same level рдХреА performance рдЖрдкрдХреЛ **FastAPI** рдХреЗ рд╕рд╛рде рдорд┐рд▓рддреА рд╣реИред
+
+рдФрд░ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ parallelism рдФрд░ asynchronicity рдПрдХ рд╣реА рд╕рдордп рдкрд░ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдкрдХреЛ tested NodeJS frameworks рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕реЗ higher performance рдорд┐рд▓рддреА рд╣реИ рдФрд░ Go рдХреЗ рдмрд░рд╛рдмрд░, рдЬреЛ C рдХреЗ рдХрд░реАрдм рдПрдХ compiled language рд╣реИ [(рдпрд╣ рд╕рдм Starlette рдХреЗ рдХрд╛рд░рдг)](https://www.techempower.com/benchmarks/#section=data-r17&hw=ph&test=query&l=zijmkf-1)ред
+
+### рдХреНрдпрд╛ concurrency parallelism рд╕реЗ рдмреЗрд╣рддрд░ рд╣реИ? { #is-concurrency-better-than-parallelism }
+
+рдирд╣реАрдВ! рдпрд╣ story рдХреА moral рдирд╣реАрдВ рд╣реИред
+
+Concurrency, parallelism рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдФрд░ рдпрд╣ рдЙрди **specific** scenarios рдореЗрдВ рдмреЗрд╣рддрд░ рд╣реИ рдЬрд┐рдирдореЗрдВ рдмрд╣реБрдд waiting рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИред рдЗрд╕реА рдХрд╛рд░рдг, web application development рдХреЗ рд▓рд┐рдП рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ parallelism рд╕реЗ рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд░ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВред
+
+рддреЛ, рдЗрд╕реЗ balance рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрди short story imagine рдХрд░реЗрдВ:
+
+> рдЖрдкрдХреЛ рдПрдХ рдмрдбрд╝рд╛, рдЧрдВрджрд╛ house clean рдХрд░рдирд╛ рд╣реИред
+
+*рд╣рд╛рдБ, рдпрд╣реА рдкреВрд░реА story рд╣реИ*ред
+
+---
+
+рдХрд╣реАрдВ рднреА рдХреЛрдИ waiting ЁЯХЩ рдирд╣реАрдВ рд╣реИ, рдмрд╕ рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, house рдХреЗ multiple places рдореЗрдВред
+
+рдЖрдк burgers example рдХреА рддрд░рд╣ turns рд░рдЦ рд╕рдХрддреЗ рдереЗ, рдкрд╣рд▓реЗ living room, рдлрд┐рд░ kitchen, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдЖрдк рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ wait ЁЯХЩ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ, рдмрд╕ cleaning and cleaning рдХрд░ рд░рд╣реЗ рд╣реИрдВ, turns рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЛ affect рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
+
+Turns (concurrency) рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд┐рдирд╛ finish рдХрд░рдиреЗ рдореЗрдВ рдЙрддрдирд╛ рд╣реА time рд▓рдЧреЗрдЧрд╛ рдФрд░ рдЖрдкрдиреЗ рдЙрддрдирд╛ рд╣реА рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ред
+
+рд▓реЗрдХрд┐рди рдЗрд╕ case рдореЗрдВ, рдЕрдЧрд░ рдЖрдк 8 ex-cashier/cooks/now-cleaners рд▓рд╛ рд╕рдХреЗрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ (plus рдЖрдк) house рдХрд╛ рдПрдХ zone clean рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЗ рд╕рдХреЗ, рддреЛ рдЖрдк extra help рдХреЗ рд╕рд╛рде рд╕рд╛рд░рд╛ рдХрд╛рдо **parallel** рдореЗрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдд рдЬрд▓реНрджреА finish рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдЗрд╕ scenario рдореЗрдВ, cleaners рдореЗрдВ рд╕реЗ рд╣рд░ рдПрдХ (рдЖрдк рд╕рд╣рд┐рдд) рдПрдХ processor рд╣реЛрдЧрд╛, job рдХрд╛ рдЕрдкрдирд╛ part рдХрд░ рд░рд╣рд╛ рд╣реЛрдЧрд╛ред
+
+рдФрд░ рдХреНрдпреЛрдВрдХрд┐ execution time рдХрд╛ рдЕрдзрд┐рдХрддрд░ рд╣рд┐рд╕реНрд╕рд╛ actual work (waiting рдХреЗ рдмрдЬрд╛рдп) рдореЗрдВ рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ computer рдореЗрдВ work CPU рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╡реЗ рдЗрди problems рдХреЛ "CPU bound" рдХрд╣рддреЗ рд╣реИрдВред
+
+---
+
+CPU bound operations рдХреЗ common examples рдРрд╕реА рдЪреАрдЬрд╝реЗрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ complex math processing рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред
+
+рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
+
+* **Audio** рдпрд╛ **image processing**ред
+* **Computer vision**: рдПрдХ image millions of pixels рд╕реЗ composed рд╣реЛрддреА рд╣реИ, рд╣рд░ pixel рдореЗрдВ 3 values / colors рд╣реЛрддреЗ рд╣реИрдВ, рдЙрд╕реЗ process рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдо рддреМрд░ рдкрд░ рдЙрди pixels рдкрд░ рдХреБрдЫ compute рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ, рд╕рдм рдПрдХ рд╣реА рд╕рдордп рдкрд░ред
+* **Machine Learning**: рдЗрд╕рдореЗрдВ рдЖрдо рддреМрд░ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ "matrix" рдФрд░ "vector" multiplications рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред Numbers рд╡рд╛рд▓реА рдПрдХ huge spreadsheet рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВ рдФрд░ рдЙрди рд╕рднреА рдХреЛ рдПрдХ рд╣реА рд╕рдордп рдкрд░ multiply рдХрд░рдирд╛ред
+* **Deep Learning**: рдпрд╣ Machine Learning рдХрд╛ sub-field рд╣реИ, рдЗрд╕рд▓рд┐рдП, рд╡рд╣реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ multiply рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП numbers рдХреА рдПрдХ single spreadsheet рдирд╣реАрдВ рд╣реЛрддреА, рдмрд▓реНрдХрд┐ рдЙрдирдХрд╛ huge set рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрдИ cases рдореЗрдВ, рдЖрдк рдЙрди models рдХреЛ build рдФрд░ / рдпрд╛ use рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ special processor рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
+
+### Concurrency + Parallelism: Web + Machine Learning { #concurrency-parallelism-web-machine-learning }
+
+**FastAPI** рдХреЗ рд╕рд╛рде рдЖрдк concurrency рдХрд╛ advantage рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ web development рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд common рд╣реИ (NodeJS рдХрд╛ рд╡рд╣реА main attraction)ред
+
+рд▓реЗрдХрд┐рди рдЖрдк Machine Learning systems рдЬреИрд╕реЗ **CPU bound** workloads рдХреЗ рд▓рд┐рдП parallelism рдФрд░ multiprocessing (multiple processes parallel рдореЗрдВ рдЪрд▓рд╛рдирд╛) рдХреЗ benefits рдХрд╛ рднреА exploit рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рд╡рд╣, рд╕рд╛рде рд╣реА рдпрд╣ simple fact рдХрд┐ Python **Data Science**, Machine Learning рдФрд░ рдЦрд╛рд╕рдХрд░ Deep Learning рдХреА main language рд╣реИ, FastAPI рдХреЛ Data Science / Machine Learning web APIs рдФрд░ applications (рдХрдИ рдЕрдиреНрдп рдХреЗ рдмреАрдЪ) рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ match рдмрдирд╛рддрд╛ рд╣реИред
+
+Production рдореЗрдВ рдЗрд╕ parallelism рдХреЛ рдХреИрд╕реЗ achieve рдХрд░реЗрдВ, рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП [Deployment](deployment/index.md) рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ section рджреЗрдЦреЗрдВред
+
+## `async` рдФрд░ `await` { #async-and-await }
+
+Python рдХреЗ рдЖрдзреБрдирд┐рдХ versions рдореЗрдВ asynchronous code define рдХрд░рдиреЗ рдХрд╛ рдмрд╣реБрдд intuitive рддрд░реАрдХрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдпрд╣ рд╕рд╛рдорд╛рдиреНрдп "sequential" code рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░ рд╕рд╣реА moments рдкрд░ рдЖрдкрдХреЗ рд▓рд┐рдП "awaiting" рдХрд░рддрд╛ рд╣реИред
+
+рдЬрдм рдХреЛрдИ operation results рджреЗрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ waiting require рдХрд░реЗрдЧрд╛ рдФрд░ рдЗрди рдирдП Python features рдХрд╛ support рд░рдЦрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЙрд╕реЗ рдРрд╕реЗ code рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+
+```Python
+burgers = await get_burgers(2)
+```
+
+рдпрд╣рд╛рдБ key `await` рд╣реИред рдпрд╣ Python рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ `burgers` рдореЗрдВ results store рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЙрд╕реЗ `get_burgers(2)` рдХреЗ рдЕрдкрдирд╛ рдХрд╛рдо ЁЯХЩ finish рдХрд░рдиреЗ рдХрд╛ wait тП╕ рдХрд░рдирд╛ рд╣реИред рдЗрд╕рд╕реЗ, Python рдЬрд╛рди рдЬрд╛рдПрдЧрд╛ рдХрд┐ рд╡рд╣ meanwhile рдХреБрдЫ рдФрд░ ЁЯФА тПп рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЬреИрд╕реЗ рдХреЛрдИ рджреВрд╕рд░реА request receive рдХрд░рдирд╛)ред
+
+`await` рдХреЗ work рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдРрд╕реЗ function рдХреЗ рдЕрдВрджрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЗрд╕ asynchronicity рдХреЛ support рдХрд░рддрд╛ рд╣реЛред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдмрд╕ рдЗрд╕реЗ `async def` рдХреЗ рд╕рд╛рде declare рдХрд░рддреЗ рд╣реИрдВ:
+
+```Python hl_lines="1"
+async def get_burgers(number: int):
+ # Burgers рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ asynchronous рдХрд╛рдо рдХрд░реЗрдВ
+ return burgers
+```
+
+...`def` рдХреЗ рдмрдЬрд╛рдп:
+
+```Python hl_lines="2"
+# рдпрд╣ asynchronous рдирд╣реАрдВ рд╣реИ
+def get_sequential_burgers(number: int):
+ # Burgers рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ sequential рдХрд╛рдо рдХрд░реЗрдВ
+ return burgers
+```
+
+`async def` рдХреЗ рд╕рд╛рде, Python рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдЙрд╕ function рдХреЗ рдЕрдВрджрд░ рдЙрд╕реЗ `await` expressions рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ aware рд░рд╣рдирд╛ рд╣реИ, рдФрд░ рд╡рд╣ рдЙрд╕ function рдХреЗ execution рдХреЛ "pause" тП╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡рд╛рдкрд╕ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдФрд░ ЁЯФА рдХрд░ рд╕рдХрддрд╛ рд╣реИред
+
+рдЬрдм рдЖрдк рдХрд┐рд╕реА `async def` function рдХреЛ call рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕реЗ "await" рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛:
+
+```Python
+# рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ get_burgers рдХреЛ async def рдХреЗ рд╕рд╛рде define рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
+burgers = get_burgers(2)
+```
+
+---
+
+рддреЛ, рдЕрдЧрд░ рдЖрдк рдХреЛрдИ library use рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕реЗ `await` рдХреЗ рд╕рд╛рде call рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ *path operation functions* рдХреЛ `async def` рдХреЗ рд╕рд╛рде create рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕реЗ:
+
+```Python hl_lines="2-3"
+@app.get('/burgers')
+async def read_burgers():
+ burgers = await get_burgers(2)
+ return burgers
+```
+
+### рдЕрдзрд┐рдХ рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг { #more-technical-details }
+
+рдЖрдкрдиреЗ notice рдХрд┐рдпрд╛ рд╣реЛрдЧрд╛ рдХрд┐ `await` рдХреЗрд╡рд▓ `async def` рдХреЗ рд╕рд╛рде defined functions рдХреЗ рдЕрдВрджрд░ рд╣реА use рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдЙрд╕реА рд╕рдордп, `async def` рдХреЗ рд╕рд╛рде defined functions рдХреЛ "awaited" рд╣реЛрдирд╛ рдкрдбрд╝рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, `async def` рд╡рд╛рд▓реЗ functions рдХреЗрд╡рд▓ `async def` рдХреЗ рд╕рд╛рде defined functions рдХреЗ рдЕрдВрджрд░ рд╣реА call рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред
+
+рддреЛ, egg рдФрд░ chicken рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдЖрдк first `async` function рдХреЛ рдХреИрд╕реЗ call рдХрд░рддреЗ рд╣реИрдВ?
+
+рдЕрдЧрд░ рдЖрдк **FastAPI** рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ "first" function рдЖрдкрдХрд╛ *path operation function* рд╣реЛрдЧрд╛, рдФрд░ FastAPI рдЬрд╛рдирддрд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд╣реА рдХрд╛рдо рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИред
+
+рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк FastAPI рдХреЗ рдмрд┐рдирд╛ `async` / `await` use рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдРрд╕рд╛ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+### рдЕрдкрдирд╛ async code рд▓рд┐рдЦреЗрдВ { #write-your-own-async-code }
+
+Starlette (рдФрд░ **FastAPI**) [AnyIO](https://anyio.readthedocs.io/en/stable/) рдкрд░ based рд╣реИрдВ, рдЬреЛ рдЗрд╕реЗ Python рдХреА standard library [asyncio](https://docs.python.org/3/library/asyncio-task.html) рдФрд░ [Trio](https://trio.readthedocs.io/en/stable/) рджреЛрдиреЛрдВ рдХреЗ рд╕рд╛рде compatible рдмрдирд╛рддрд╛ рд╣реИред
+
+рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЖрдк рдЕрдкрдиреЗ advanced concurrency use cases рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ [AnyIO](https://anyio.readthedocs.io/en/stable/) use рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рдЕрдкрдиреЗ code рдореЗрдВ рдЕрдзрд┐рдХ advanced patterns рдХреА рдЬрд╝рд░реВрд░рдд рд╣реЛрддреА рд╣реИред
+
+рдФрд░ рднрд▓реЗ рд╣реА рдЖрдк FastAPI use рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реЛрдВ, рдЖрдк high compatibility рдФрд░ рдЗрд╕рдХреЗ benefits (рдЬреИрд╕реЗ *structured concurrency*) рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП [AnyIO](https://anyio.readthedocs.io/en/stable/) рдХреЗ рд╕рд╛рде рдЕрдкрдиреЗ рдЦреБрдж рдХреЗ async applications рднреА рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдореИрдВрдиреЗ AnyIO рдХреЗ рдКрдкрд░ рдПрдХ рдФрд░ library рдмрдирд╛рдИ, рдКрдкрд░ рдПрдХ thin layer рдХреЗ рд░реВрдк рдореЗрдВ, рддрд╛рдХрд┐ type annotations рдХреЛ рдереЛрдбрд╝рд╛ improve рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдмреЗрд╣рддрд░ **autocompletion**, **inline errors**, рдЖрджрд┐ рдорд┐рд▓ рд╕рдХреЗрдВред рдЗрд╕рдореЗрдВ рдПрдХ friendly introduction рдФрд░ tutorial рднреА рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ **рд╕рдордЭрдиреЗ** рдФрд░ **рдЕрдкрдирд╛ async code** рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗ: [Asyncer](https://asyncer.tiangolo.com/)ред рдпрд╣ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ useful рд╣реЛрдЧрд╛ рдЕрдЧрд░ рдЖрдкрдХреЛ **async code рдХреЛ regular** (blocking/synchronous) code рдХреЗ рд╕рд╛рде **combine** рдХрд░рдирд╛ рд╣реЛред
+
+### Asynchronous code рдХреЗ рдЕрдиреНрдп forms { #other-forms-of-asynchronous-code }
+
+`async` рдФрд░ `await` use рдХрд░рдиреЗ рдХреА рдпрд╣ style language рдореЗрдВ relatively new рд╣реИред
+
+рд▓реЗрдХрд┐рди рдпрд╣ asynchronous code рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рдмрдирд╛рддреА рд╣реИред
+
+рдпрд╣реА same syntax (рдпрд╛ рд▓рдЧрднрдЧ identical) рд╣рд╛рд▓ рд╣реА рдореЗрдВ JavaScript рдХреЗ modern versions (Browser рдФрд░ NodeJS рдореЗрдВ) рдореЗрдВ рднреА рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
+
+рд▓реЗрдХрд┐рди рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ, asynchronous code handle рдХрд░рдирд╛ рдХрд╣реАрдВ рдЕрдзрд┐рдХ complex рдФрд░ difficult рдерд╛ред
+
+Python рдХреЗ previous versions рдореЗрдВ, рдЖрдк threads рдпрд╛ [Gevent](https://www.gevent.org/) use рдХрд░ рд╕рдХрддреЗ рдереЗред рд▓реЗрдХрд┐рди code рд╕рдордЭрдиреЗ, debug рдХрд░рдиреЗ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рдЕрдзрд┐рдХ complex рд╣реЛрддрд╛ рд╣реИред
+
+NodeJS / Browser JavaScript рдХреЗ previous versions рдореЗрдВ, рдЖрдк "callbacks" use рдХрд░рддреЗред рдЬреЛ "callback hell" рддрдХ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
+
+## Coroutines { #coroutines }
+
+**Coroutine** рдмрд╕ рдЙрд╕ рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд fancy term рд╣реИ рдЬреЛ рдХрд┐рд╕реА `async def` function рджреНрд╡рд╛рд░рд╛ return рдХреА рдЬрд╛рддреА рд╣реИред Python рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ function рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬрд╝ рд╣реИ, рдЬрд┐рд╕реЗ рд╡рд╣ start рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬреЛ рдХрд┐рд╕реА point рдкрд░ end рд╣реЛрдЧреА, рд▓реЗрдХрд┐рди рдпрд╣ internally pause тП╕ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрдм рднреА рдЗрд╕рдХреЗ рдЕрдВрджрд░ рдХреЛрдИ `await` рд╣реЛред
+
+рд▓реЗрдХрд┐рди asynchronous code рдХреЛ `async` рдФрд░ `await` рдХреЗ рд╕рд╛рде use рдХрд░рдиреЗ рдХреА рдпрд╣ рд╕рд╛рд░реА functionality рдХрдИ рдмрд╛рд░ "coroutines" use рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ summarize рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ Go рдХреА main key feature, "Goroutines" рд╕реЗ comparable рд╣реИред
+
+## рдирд┐рд╖реНрдХрд░реНрд╖ { #conclusion }
+
+рдЖрдЗрдП рдКрдкрд░ рд╡рд╛рд▓рд╛ рд╡рд╣реА phrase рджреЗрдЦреЗрдВ:
+
+> Python рдХреЗ рдЖрдзреБрдирд┐рдХ versions **"asynchronous code"** рдХрд╛ support рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ **"coroutines"** рдирд╛рдо рдХреА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, **`async` рдФрд░ `await`** syntax рдХреЗ рд╕рд╛рдеред
+
+рдЕрдм рдпрд╣ рдЕрдзрд┐рдХ sense рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред тЬи
+
+рдпрд╣ рд╕рдм FastAPI (Starlette рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдХреЛ power рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЗрддрдиреА impressive performance рджреЗрддрд╛ рд╣реИред
+
+## рдмрд╣реБрдд рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдг { #very-technical-details }
+
+/// warning | рдЪреЗрддрд╛рд╡рдиреА
+
+рдЖрдк рд╢рд╛рдпрдж рдЗрд╕реЗ skip рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдпреЗ **FastAPI** рдЕрдВрджрд░ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрд╣реБрдд technical details рд╣реИрдВред
+
+рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрд╛рдлреА technical knowledge (coroutines, threads, blocking, рдЖрджрд┐) рд╣реИ рдФрд░ рдЖрдк curious рд╣реИрдВ рдХрд┐ FastAPI `async def` рдмрдирд╛рдо normal `def` рдХреЛ рдХреИрд╕реЗ handle рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
+
+///
+
+### Path operation functions { #path-operation-functions }
+
+рдЬрдм рдЖрдк рдХрд┐рд╕реА *path operation function* рдХреЛ `async def` рдХреЗ рдмрдЬрд╛рдп normal `def` рдХреЗ рд╕рд╛рде declare рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕реЗ directly call рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп (рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ server рдХреЛ block рдХрд░реЗрдЧрд╛), рдПрдХ external threadpool рдореЗрдВ run рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдлрд┐рд░ awaited рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЕрдЧрд░ рдЖрдк рдХрд┐рд╕реА рджреВрд╕рд░реЗ async framework рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдКрдкрд░ described рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рдФрд░ рдЖрдк tiny performance gain (рд▓рдЧрднрдЧ 100 nanoseconds) рдХреЗ рд▓рд┐рдП trivial compute-only *path operation functions* рдХреЛ plain `def` рдХреЗ рд╕рд╛рде define рдХрд░рдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ **FastAPI** рдореЗрдВ effect рдмрд┐рд▓реНрдХреБрд▓ рдЙрд▓реНрдЯрд╛ рд╣реЛрдЧрд╛ред рдЗрди cases рдореЗрдВ, `async def` use рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдЬрдм рддрдХ рдХрд┐ рдЖрдкрдХреЗ *path operation functions* рдРрд╕рд╛ code use рди рдХрд░реЗрдВ рдЬреЛ blocking I/O perform рдХрд░рддрд╛ рд╣реЛред
+
+рдлрд┐рд░ рднреА, рджреЛрдиреЛрдВ situations рдореЗрдВ, рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ **FastAPI** рдЖрдкрдХреЗ previous framework рд╕реЗ [рдлрд┐рд░ рднреА рддреЗрдЬрд╝ рд╣реЛрдЧрд╛](index.md#performance) (рдпрд╛ рдХрдо рд╕реЗ рдХрдо comparable рд╣реЛрдЧрд╛)ред
+
+### Dependencies { #dependencies }
+
+[Dependencies](tutorial/dependencies/index.md) рдХреЗ рд▓рд┐рдП рднреА рдпрд╣реА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ dependency `async def` рдХреЗ рдмрдЬрд╛рдп standard `def` function рд╣реИ, рддреЛ рдЙрд╕реЗ external threadpool рдореЗрдВ run рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+### Sub-dependencies { #sub-dependencies }
+
+рдЖрдкрдХреЗ рдкрд╛рд╕ multiple dependencies рдФрд░ [sub-dependencies](tutorial/dependencies/sub-dependencies.md) рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдЬреЛ рдПрдХ-рджреВрд╕рд░реЗ рдХреЛ require рдХрд░рддреА рд╣реИрдВ (function definitions рдХреЗ parameters рдХреЗ рд░реВрдк рдореЗрдВ), рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ `async def` рдХреЗ рд╕рд╛рде created рд╣реЛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдХреБрдЫ normal `def` рдХреЗ рд╕рд╛рдеред рдпрд╣ рдлрд┐рд░ рднреА work рдХрд░реЗрдЧрд╛, рдФрд░ normal `def` рдХреЗ рд╕рд╛рде created ones рдХреЛ "awaited" рд╣реЛрдиреЗ рдХреЗ рдмрдЬрд╛рдп external thread (threadpool рд╕реЗ) рдкрд░ call рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
+
+### рдЕрдиреНрдп utility functions { #other-utility-functions }
+
+рдХреЛрдИ рднреА рдЕрдиреНрдп utility function рдЬрд┐рд╕реЗ рдЖрдк directly call рдХрд░рддреЗ рд╣реИрдВ, normal `def` рдпрд╛ `async def` рдХреЗ рд╕рд╛рде created рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ FastAPI рдЖрдкрдХреЗ рдЙрд╕реЗ call рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЛ affect рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
+
+рдпрд╣ рдЙрди functions рдХреЗ contrast рдореЗрдВ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ FastAPI рдЖрдкрдХреЗ рд▓рд┐рдП call рдХрд░рддрд╛ рд╣реИ: *path operation functions* рдФрд░ dependenciesред
+
+рдЕрдЧрд░ рдЖрдкрдХрд╛ utility function `def` рд╡рд╛рд▓рд╛ normal function рд╣реИ, рддреЛ рдЙрд╕реЗ directly call рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЬреИрд╕рд╛ рдЖрдк рдЕрдкрдиреЗ code рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ), threadpool рдореЗрдВ рдирд╣реАрдВ; рдЕрдЧрд░ function `async def` рдХреЗ рд╕рд╛рде created рд╣реИ рддреЛ рдЖрдкрдХреЛ рдЕрдкрдиреЗ code рдореЗрдВ рдЙрд╕реЗ call рдХрд░рддреЗ рд╕рдордп рдЙрд╕ function рдХреЛ `await` рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
+
+---
+
+рдлрд┐рд░ рд╕реЗ, рдпреЗ рдмрд╣реБрдд technical details рд╣реИрдВ рдЬреЛ рд╢рд╛рдпрдж useful рд╣реЛрдВрдЧреЗ рдЕрдЧрд░ рдЖрдк рдЗрдиреНрд╣реЗрдВ search рдХрд░рддреЗ рд╣реБрдП рдЖрдП рд╣реИрдВред
+
+рдЕрдиреНрдпрдерд╛, рдЖрдкрдХреЛ рдКрдкрд░ рдХреЗ section рдХреА guidelines рдХреЗ рд╕рд╛рде рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВ?ред
diff --git a/docs/hi/docs/benchmarks.md b/docs/hi/docs/benchmarks.md
new file mode 100644
index 000000000..11a22bcb8
--- /dev/null
+++ b/docs/hi/docs/benchmarks.md
@@ -0,0 +1,34 @@
+# Benchmarks { #benchmarks }
+
+рд╕реНрд╡рддрдВрддреНрд░ TechEmpower benchmarks рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рдХрд┐ Uvicorn рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ **FastAPI** applications [рдЙрдкрд▓рдмреНрдз рд╕рдмрд╕реЗ рддреЗрдЬрд╝ Python frameworks рдореЗрдВ рд╕реЗ рдПрдХ](https://www.techempower.com/benchmarks/#section=test&runid=7464e520-0dc2-473d-bd34-dbdfd7e85911&hw=ph&test=query&l=zijzen-7) рд╣реИрдВ, рдХреЗрд╡рд▓ Starlette рдФрд░ Uvicorn рд╕реНрд╡рдпрдВ рд╕реЗ рдиреАрдЪреЗ (рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ FastAPI рджреНрд╡рд╛рд░рд╛ internally рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
+
+рд▓реЗрдХрд┐рди benchmarks рдФрд░ comparisons рджреЗрдЦрддреЗ рд╕рдордп рдЖрдкрдХреЛ рдирд┐рдореНрди рдмрд╛рддреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред
+
+## Benchmarks рдФрд░ speed { #benchmarks-and-speed }
+
+рдЬрдм рдЖрдк benchmarks рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрдИ tools рдХреЛ equivalent рдорд╛рдирдХрд░ compare рд╣реЛрддреЗ рджреЗрдЦрдирд╛ рдЖрдо рдмрд╛рдд рд╣реИред
+
+рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, Uvicorn, Starlette рдФрд░ FastAPI рдХреЛ рдПрдХ рд╕рд╛рде compare рд╣реЛрддреЗ рджреЗрдЦрдирд╛ (рдХрдИ рдЕрдиреНрдп tools рдХреЗ рд╕рд╛рде)ред
+
+Tool рдЬрд┐рддрдиреА рд╕рд░рд▓ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдЙрддрдиреА рд╣реА рдмреЗрд╣рддрд░ performance рдорд┐рд▓реЗрдЧреАред рдФрд░ рдЕрдзрд┐рдХрд╛рдВрд╢ benchmarks, tool рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рдЕрддрд┐рд░рд┐рдХреНрдд features рдХреЛ test рдирд╣реАрдВ рдХрд░рддреЗред
+
+Hierarchy рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
+
+* **Uvicorn**: рдПрдХ ASGI server
+ * **Starlette**: (Uvicorn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) рдПрдХ web microframework
+ * **FastAPI**: (Starlette рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ) APIs рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдЕрддрд┐рд░рд┐рдХреНрдд features рд╡рд╛рд▓рд╛ рдПрдХ API microframework, рдЬрд┐рд╕рдореЗрдВ data validation рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
+
+* **Uvicorn**:
+ * рдЗрд╕рдХреА performance рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ server рд╕реНрд╡рдпрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдмрд╣реБрдд рдЕрдзрд┐рдХ extra code рдирд╣реАрдВ рд╣реЛрддрд╛ред
+ * рдЖрдк рд╕реАрдзреЗ Uvicorn рдореЗрдВ application рдирд╣реАрдВ рд▓рд┐рдЦреЗрдВрдЧреЗред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реЛрдЧрд╛ рдХрд┐ рдЖрдкрдХреЗ code рдореЗрдВ рдХрдореЛрдмреЗрд╢, рдХрдо рд╕реЗ рдХрдо, Starlette (рдпрд╛ **FastAPI**) рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рд╛рд░рд╛ code рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рдкрдбрд╝реЗрдЧрд╛ред рдФрд░ рдпрджрд┐ рдЖрдкрдиреЗ рдРрд╕рд╛ рдХрд┐рдпрд╛, рддреЛ рдЖрдкрдХреЗ final application рдореЗрдВ framework рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдФрд░ рдЕрдкрдиреЗ app code рддрдерд╛ bugs рдХреЛ рдХрдо рдХрд░рдиреЗ рдЬрд┐рддрдирд╛ рд╣реА overhead рд╣реЛрдЧрд╛ред
+ * рдпрджрд┐ рдЖрдк Uvicorn рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рддреБрд▓рдирд╛ Daphne, Hypercorn, uWSGI рдЖрджрд┐ рд╕реЗ рдХрд░реЗрдВред Application servers рд╕реЗред
+* **Starlette**:
+ * Uvicorn рдХреЗ рдмрд╛рдж рдЗрд╕рдХреА performance рдЕрдЧрд▓реА рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреА рд╣реЛрдЧреАред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, Starlette рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП Uvicorn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рд╕рдВрднрд╡рддрдГ рдпрд╣ рдХреЗрд╡рд▓ рдЕрдзрд┐рдХ code execute рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░рдг Uvicorn рд╕реЗ "рдзреАрдорд╛" рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
+ * рд▓реЗрдХрд┐рди рдпрд╣ рдЖрдкрдХреЛ simple web applications рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП tools рджреЗрддрд╛ рд╣реИ, рдЬреИрд╕реЗ paths рдкрд░ рдЖрдзрд╛рд░рд┐рдд routing рдЖрджрд┐ред
+ * рдпрджрд┐ рдЖрдк Starlette рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рддреБрд▓рдирд╛ Sanic, Flask, Django рдЖрджрд┐ рд╕реЗ рдХрд░реЗрдВред Web frameworks (рдпрд╛ microframeworks) рд╕реЗред
+* **FastAPI**:
+ * рдЬреИрд╕реЗ Starlette, Uvicorn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕рд╕реЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛, рд╡реИрд╕реЗ рд╣реА **FastAPI**, Starlette рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЙрд╕рд╕реЗ рддреЗрдЬрд╝ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
+ * FastAPI, Starlette рдХреЗ рдКрдкрд░ рдФрд░ features рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдРрд╕реЗ features рдЬрд┐рдирдХреА рдЖрдкрдХреЛ APIs рдмрдирд╛рддреЗ рд╕рдордп рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреИрд╕реЗ data validation рдФрд░ serializationред рдФрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдкрдХреЛ automatic documentation рдореБрдлреНрдд рдореЗрдВ рдорд┐рд▓рддреА рд╣реИ (automatic documentation running applications рдореЗрдВ overhead рднреА рдирд╣реАрдВ рдЬреЛрдбрд╝рддреА, рдпрд╣ startup рдкрд░ generate рд╣реЛрддреА рд╣реИ)ред
+ * рдпрджрд┐ рдЖрдкрдиреЗ FastAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╕реАрдзреЗ Starlette (рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп tool, рдЬреИрд╕реЗ Sanic, Flask, Responder рдЖрджрд┐) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рддреЛ рдЖрдкрдХреЛ рд╕рднреА data validation рдФрд░ serialization рд╕реНрд╡рдпрдВ implement рдХрд░рдиреЗ рдкрдбрд╝реЗрдВрдЧреЗред рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЗ final application рдореЗрдВ рдлрд┐рд░ рднреА рдЙрддрдирд╛ рд╣реА overhead рд╣реЛрдЧрд╛ рдЬрд┐рддрдирд╛ FastAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╣реЛрддрд╛ред рдФрд░ рдХрдИ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ data validation рдФрд░ serialization applications рдореЗрдВ рд▓рд┐рдЦреЗ рдЧрдП code рдХрд╛ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрддрд╛ рд╣реИред
+ * рдЗрд╕рд▓рд┐рдП, FastAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЖрдк development time, bugs рдФрд░ lines of code рдмрдЪрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЛ рд╡рд╣реА performance (рдпрд╛ рдмреЗрд╣рддрд░) рдорд┐рд▓реЗрдЧреА рдЬреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдкрд░ рдорд┐рд▓рддреА (рдХреНрдпреЛрдВрдХрд┐ рддрдм рдЖрдкрдХреЛ рдпрд╣ рд╕рдм рдЕрдкрдиреЗ code рдореЗрдВ implement рдХрд░рдирд╛ рдкрдбрд╝рддрд╛)ред
+ * рдпрджрд┐ рдЖрдк FastAPI рдХреА рддреБрд▓рдирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдРрд╕реЗ web application framework (рдпрд╛ tools рдХреЗ set) рд╕реЗ рдХрд░реЗрдВ рдЬреЛ data validation, serialization рдФрд░ documentation рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реЛ, рдЬреИрд╕реЗ Flask-apispec, NestJS, Molten рдЖрджрд┐ред рдРрд╕реЗ frameworks рдЬрд┐рдирдореЗрдВ integrated automatic data validation, serialization рдФрд░ documentation рд╣реЛред
diff --git a/docs/hi/docs/editor-support.md b/docs/hi/docs/editor-support.md
new file mode 100644
index 000000000..eee38f058
--- /dev/null
+++ b/docs/hi/docs/editor-support.md
@@ -0,0 +1,23 @@
+# Editor Support { #editor-support }
+
+рдЖрдзрд┐рдХрд╛рд░рд┐рдХ [FastAPI Extension](https://marketplace.visualstudio.com/items?itemName=FastAPILabs.fastapi-vscode) рдЖрдкрдХреЗ FastAPI development workflow рдХреЛ *path operation* discovery, navigation, рд╕рд╛рде рд╣реА FastAPI Cloud deployment рдФрд░ live log streaming рдХреЗ рд╕рд╛рде рдмреЗрд╣рддрд░ рдмрдирд╛рддрд╛ рд╣реИред
+
+Extension рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, [GitHub repository](https://github.com/fastapi/fastapi-vscode) рдкрд░ README рджреЗрдЦреЗрдВред
+
+## Setup рдФрд░ Installation { #setup-and-installation }
+
+**FastAPI Extension** [VS Code](https://code.visualstudio.com/) рдФрд░ [Cursor](https://www.cursor.com/) рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИред рдЗрд╕реЗ рд╣рд░ editor рдХреЗ Extensions panel рд╕реЗ рд╕реАрдзреЗ "FastAPI" рдЦреЛрдЬрдХрд░ рдФрд░ **FastAPI Labs** рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд extension рдЪреБрдирдХрд░ install рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ extension browser-based editors рдЬреИрд╕реЗ [vscode.dev](https://vscode.dev) рдФрд░ [github.dev](https://github.dev) рдореЗрдВ рднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
+
+### Application Discovery { #application-discovery }
+
+Default рд░реВрдк рд╕реЗ, extension рдЖрдкрдХреЗ workspace рдореЗрдВ `FastAPI()` instantiate рдХрд░рдиреЗ рд╡рд╛рд▓реА files рдХреЛ scan рдХрд░рдХреЗ FastAPI applications рдХреЛ рдЕрдкрдиреЗ-рдЖрдк discover рдХрд░реЗрдЧрд╛ред рдпрджрд┐ auto-detection рдЖрдкрдХреЗ project structure рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛, рддреЛ рдЖрдк `pyproject.toml` рдореЗрдВ `[tool.fastapi]` рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ module notation (рдЬреИрд╕реЗ `myapp.main:app`) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ `fastapi.entryPoint` VS Code setting рдореЗрдВ entrypoint specify рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+## Features { #features }
+
+- **Path Operation Explorer** - рдЖрдкрдХреЗ application рдореЗрдВ рд╕рднреА *path operations* рдХрд╛ sidebar tree viewред рдХрд┐рд╕реА рднреА route рдпрд╛ router definition рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП click рдХрд░реЗрдВред
+- **Route Search** - Ctrl + Shift + E (macOS рдкрд░: Cmd + Shift + E) рдХреЗ рд╕рд╛рде path, method, рдпрд╛ name рдХреЗ рдЖрдзрд╛рд░ рдкрд░ search рдХрд░реЗрдВред
+- **CodeLens Navigation** - test client calls (рдЬреИрд╕реЗ `client.get('/items')`) рдХреЗ рдКрдкрд░ clickable links, рдЬреЛ tests рдФрд░ implementation рдХреЗ рдмреАрдЪ quick navigation рдХреЗ рд▓рд┐рдП matching *path operation* рдкрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред
+- **Deploy to FastAPI Cloud** - рдЖрдкрдХреА app рдХреЛ [FastAPI Cloud](https://fastapicloud.com/) рдкрд░ one-click deploymentред
+- **Stream Application Logs** - level filtering рдФрд░ text search рдХреЗ рд╕рд╛рде рдЖрдкрдХреЗ FastAPI Cloud-deployed application рд╕реЗ real-time log streamingред
+
+рдпрджрд┐ рдЖрдк extension рдХреЗ features рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ Command Palette (Ctrl + Shift + P рдпрд╛ macOS рдкрд░: Cmd + Shift + P) рдЦреЛрд▓рдХрд░ рдФрд░ "Welcome: Open walkthrough..." рдЪреБрдирдХрд░, рдлрд┐рд░ "Get started with FastAPI" walkthrough рдЪреБрдирдХрд░ extension walkthrough рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
diff --git a/docs/hi/docs/fastapi-cli.md b/docs/hi/docs/fastapi-cli.md
new file mode 100644
index 000000000..87a1a983f
--- /dev/null
+++ b/docs/hi/docs/fastapi-cli.md
@@ -0,0 +1,134 @@
+# FastAPI CLI { #fastapi-cli }
+
+**FastAPI CLI** рдПрдХ command line рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдЕрдкрдиреЗ FastAPI рдРрдк рдХреЛ serve рдХрд░рдиреЗ, рдЕрдкрдиреЗ FastAPI project рдХреЛ manage рдХрд░рдиреЗ, рдФрд░ рднреА рдмрд╣реБрдд рдХреБрдЫ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдЬрдм рдЖрдк FastAPI install рдХрд░рддреЗ рд╣реИрдВ (рдЬреИрд╕реЗ `pip install "fastapi[standard]"` рдХреЗ рд╕рд╛рде), рддреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдПрдХ command line рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдк terminal рдореЗрдВ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред
+
+development рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ FastAPI рдРрдк рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк `fastapi dev` command рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+
+
+ +рджреВрд╕рд░реЛрдВ рдХреЗ рдкрд┐рдЫрд▓реЗ рдХрд╛рдо рдХреЗ рдмрд┐рдирд╛ **FastAPI** рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрддрд╛ред + +рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрдИ tools рдмрдирд╛рдП рдЧрдП рд╣реИрдВ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЛ рдкреНрд░реЗрд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХреА рд╣реИред + +рдореИрдВ рдХрдИ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдПрдХ рдирдпрд╛ framework рдмрдирд╛рдиреЗ рд╕реЗ рдмрдЪрддрд╛ рд░рд╣рд╛ред рдкрд╣рд▓реЗ рдореИрдВрдиреЗ **FastAPI** рджреНрд╡рд╛рд░рд╛ рдХрд╡рд░ рдХрд┐рдП рдЧрдП рд╕рднреА features рдХреЛ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ frameworks, plug-ins рдФрд░ tools рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред + +рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдмрд┐рдВрджреБ рдкрд░, рдРрд╕рд╛ рдХреБрдЫ рдмрдирд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреЛрдИ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рдмрдЪрд╛ рдерд╛ рдЬреЛ рдпреЗ рд╕рднреА features рдкреНрд░рджрд╛рди рдХрд░реЗ, рдкрд┐рдЫрд▓реЗ tools рд╕реЗ рд╕рд░реНрд╡реЛрддреНрддрдо ideas рд▓реЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рд░реНрд╡реЛрддреНрддрдо рд╕рдВрднрд╡ рддрд░реАрдХреЗ рд╕реЗ рдЬреЛрдбрд╝реЗ, рд╕рд╛рде рд╣реА рдРрд╕реА language features рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗ рдЬреЛ рдкрд╣рд▓реЗ рдЙрдкрд▓рдмреНрдз рднреА рдирд╣реАрдВ рдереАрдВ (Python 3.6+ type hints)ред + ++ +## рдЬрд╛рдБрдЪ-рдкрдбрд╝рддрд╛рд▓ { #investigation } + +рд╕рднреА рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореБрдЭреЗ рдЙрди рд╕рднреА рд╕реЗ рд╕реАрдЦрдиреЗ, ideas рд▓реЗрдиреЗ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ рддрдерд╛ рдЬрд┐рди developer teams рдХреЗ рд╕рд╛рде рдореИрдВрдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ рдЙрдирдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдЪреНрдЫреЗ рддрд░реАрдХреЗ рд╕реЗ рдорд┐рд▓рд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛ред + +рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдерд╛ рдХрд┐ рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ рдЗрд╕реЗ standard Python type hints рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред + +рд╕рд╛рде рд╣реА, рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж standards рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред + +рдЗрд╕рд▓рд┐рдП, **FastAPI** рдХреА coding рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣реА, рдореИрдВрдиреЗ OpenAPI, JSON Schema, OAuth2 рдЖрджрд┐ рдХреЗ specs рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдореЗрдВ рдХрдИ рдорд╣реАрдиреЗ рдмрд┐рддрд╛рдПред рдЙрдирдХреЗ рд╕рдВрдмрдВрдз, overlap рдФрд░ differences рдХреЛ рд╕рдордЭрд╛ред + +## рдбрд┐рдЬрд╝рд╛рдЗрди { #design } + +рдлрд┐рд░ рдореИрдВрдиреЗ рдЙрд╕ developer "API" рдХреЛ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧрд╛рдпрд╛ рдЬрд┐рд╕реЗ рдореИрдВ рдПрдХ user рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ (FastAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ developer рдХреЗ рд░реВрдк рдореЗрдВ)ред + +рдореИрдВрдиреЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп Python editors рдореЗрдВ рдХрдИ ideas рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛: PyCharm, VS Code, Jedi рдЖрдзрд╛рд░рд┐рдд editorsред + +рдкрд┐рдЫрд▓реЗ [Python Developer Survey](https://www.jetbrains.com/research/python-developers-survey-2018/#development-tools) рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрд╣ рд▓рдЧрднрдЧ 80% users рдХреЛ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИред + +рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ **FastAPI** рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЙрди editors рдХреЗ рд╕рд╛рде test рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ 80% Python developers рдХрд░рддреЗ рд╣реИрдВред рдФрд░ рдЪреВрдБрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЕрдиреНрдп editors рднреА рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рд╕рднреА рд▓рд╛рдн рд▓рдЧрднрдЧ рд╕рднреА editors рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рдиреЗ рдЪрд╛рд╣рд┐рдПред + +рдЗрд╕ рддрд░рд╣ рдореИрдВ code duplication рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрдо рдХрд░рдиреЗ, рд╣рд░ рдЬрдЧрд╣ completion рдкрд╛рдиреЗ, type рдФрд░ error checks рдЖрджрд┐ рдХреЗ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЗ рдЦреЛрдЬ рд╕рдХрд╛ред + +рд╕рдм рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдХрд┐ рд╕рднреА developers рдХреЛ рд╕рд░реНрд╡реЛрддреНрддрдо development experience рдорд┐рд▓ рд╕рдХреЗред + +## Requirements { #requirements } + +рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рддрдп рдХрд┐рдпрд╛ рдХрд┐ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд╛рднреЛрдВ рдХреЗ рд▓рд┐рдП [**Pydantic**](https://docs.pydantic.dev/) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдБрдЧрд╛ред + +рдлрд┐рд░ рдореИрдВрдиреЗ рдЗрд╕рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рддрд╛рдХрд┐ рдЗрд╕реЗ JSON Schema рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ compliant рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ, constraint declarations рдХреЛ define рдХрд░рдиреЗ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ, рдФрд░ рдХрдИ editors рдореЗрдВ tests рдХреЗ рдЖрдзрд╛рд░ рдкрд░ editor support (type checks, autocompletion) рдХреЛ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред + +Development рдХреЗ рджреМрд░рд╛рди, рдореИрдВрдиреЗ [**Starlette**](https://www.starlette.dev/) рдореЗрдВ рднреА рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛, рдЬреЛ рджреВрд╕рд░реА рдореБрдЦреНрдп requirement рдереАред + +## Development { #development } + +рдЬрдм рддрдХ рдореИрдВрдиреЗ **FastAPI** рдЦреБрдж рдмрдирд╛рдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛, рддрдм рддрдХ рдЕрдзрд┐рдХрд╛рдВрд╢ рд╣рд┐рд╕реНрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рдереЗ, design рддрдп рд╣реЛ рдЪреБрдХрд╛ рдерд╛, requirements рдФрд░ tools рддреИрдпрд╛рд░ рдереЗ, рдФрд░ standards рддрдерд╛ specifications рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬреНрдЮрд╛рди рд╕реНрдкрд╖реНрдЯ рдФрд░ рддрд╛рдЬрд╝рд╛ рдерд╛ред + +## рднрд╡рд┐рд╖реНрдп { #future } + +рдЗрд╕ рдмрд┐рдВрджреБ рддрдХ, рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ **FastAPI** рдЕрдкрдиреЗ ideas рдХреЗ рд╕рд╛рде рдХрдИ рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╕рд╛рдмрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИред + +рдЗрд╕реЗ рдХрдИ use cases рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдЙрдкрдпреБрдХреНрдд рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдкрд┐рдЫрд▓реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рдЪреБрдирд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред + +рдХрдИ developers рдФрд░ teams рдЕрдкрдиреЗ projects рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА **FastAPI** рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВ (рдореЗрд░реЗ рдФрд░ рдореЗрд░реА team рд╕рд╣рд┐рдд)ред + +рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЕрднреА рдХрдИ improvements рдФрд░ features рдЖрдиреЗ рдмрд╛рдХреА рд╣реИрдВред + +**FastAPI** рдХрд╛ рднрд╡рд┐рд╖реНрдп рдмрд╣реБрдд рдЙрдЬреНрдЬреНрд╡рд▓ рд╣реИред + +рдФрд░ [рдЖрдкрдХреА рдорджрдж](help-fastapi.md) рдХреА рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рддреА рд╣реИред diff --git a/docs/hi/docs/project-generation.md b/docs/hi/docs/project-generation.md new file mode 100644 index 000000000..747e4da53 --- /dev/null +++ b/docs/hi/docs/project-generation.md @@ -0,0 +1,28 @@ +# Full Stack FastAPI Template { #full-stack-fastapi-template } + +Templates рдЖрдо рддреМрд░ рдкрд░ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ setup рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ flexible рдФрд░ customizable рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЕрдкрдиреЗ project рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ modify рдФрд░ adapt рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рд╕реЗ рд╡реЗ рдПрдХ рдмреЗрд╣рддрд░реАрди starting point рдмрди рдЬрд╛рддреЗ рд╣реИрдВред ЁЯПБ + +рдЖрдк рд╢реБрд░реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ template рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛ initial setup, security, database рдФрд░ рдХреБрдЫ API endpoints рдкрд╣рд▓реЗ рд╕реЗ рддреИрдпрд╛рд░ рд╣реИрдВред + +GitHub Repository: [Full Stack FastAPI Template](https://github.com/tiangolo/full-stack-fastapi-template) + +## Full Stack FastAPI Template - Technology Stack рдФрд░ Features { #full-stack-fastapi-template-technology-stack-and-features } + +- тЪб Python backend API рдХреЗ рд▓рд┐рдП [**FastAPI**](https://fastapi.tiangolo.com/hi)ред + - ЁЯз░ Python SQL database interactions (ORM) рдХреЗ рд▓рд┐рдП [SQLModel](https://sqlmodel.tiangolo.com)ред + - ЁЯФН data validation рдФрд░ settings management рдХреЗ рд▓рд┐рдП [Pydantic](https://docs.pydantic.dev), рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ FastAPI рдХрд░рддрд╛ рд╣реИред + - ЁЯТ╛ SQL database рдХреЗ рд░реВрдк рдореЗрдВ [PostgreSQL](https://www.postgresql.org)ред +- ЁЯЪА frontend рдХреЗ рд▓рд┐рдП [React](https://react.dev)ред + - ЁЯТГ TypeScript, hooks, Vite, рдФрд░ modern frontend stack рдХреЗ рдЕрдиреНрдп parts рдХрд╛ рдЙрдкрдпреЛрдЧред + - ЁЯОи frontend components рдХреЗ рд▓рд┐рдП [Tailwind CSS](https://tailwindcss.com) рдФрд░ [shadcn/ui](https://ui.shadcn.com)ред + - ЁЯдЦ рдПрдХ automatically generated frontend clientред + - ЁЯзк End-to-End testing рдХреЗ рд▓рд┐рдП [Playwright](https://playwright.dev)ред + - ЁЯжЗ Dark mode supportред +- ЁЯРЛ development рдФрд░ production рдХреЗ рд▓рд┐рдП [Docker Compose](https://www.docker.com)ред +- ЁЯФТ default рд░реВрдк рд╕реЗ secure password hashingред +- ЁЯФС JWT (JSON Web Token) authenticationред +- ЁЯУл Email рдЖрдзрд╛рд░рд┐рдд password recoveryред +- тЬЕ [Pytest](https://pytest.org) рдХреЗ рд╕рд╛рде testsред +- ЁЯУЮ reverse proxy / load balancer рдХреЗ рд░реВрдк рдореЗрдВ [Traefik](https://traefik.io)ред +- ЁЯЪв Docker Compose рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ deployment instructions, рдЬрд┐рд╕рдореЗрдВ automatic HTTPS certificates handle рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП frontend Traefik proxy setup рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред +- ЁЯПн GitHub Actions рдкрд░ рдЖрдзрд╛рд░рд┐рдд CI (continuous integration) рдФрд░ CD (continuous deployment)ред diff --git a/docs/hi/docs/python-types.md b/docs/hi/docs/python-types.md new file mode 100644 index 000000000..86522e18e --- /dev/null +++ b/docs/hi/docs/python-types.md @@ -0,0 +1,348 @@ +# Python Types рдкрд░рд┐рдЪрдп { #python-types-intro } + +Python рдореЗрдВ рд╡реИрдХрд▓реНрдкрд┐рдХ "type hints" (рдЬрд┐рдиреНрд╣реЗрдВ "type annotations" рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ) рдХрд╛ рд╕рдорд░реНрдерди рд╣реИред + +рдпреЗ **"type hints"** рдпрд╛ annotations рдПрдХ рд╡рд┐рд╢реЗрд╖ syntax рд╣реИрдВ, рдЬреЛ рдХрд┐рд╕реА variable рдХрд╛ type рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред + +рдЕрдкрдиреЗ variables рдХреЗ рд▓рд┐рдП types рдШреЛрд╖рд┐рдд рдХрд░рдХреЗ, editors рдФрд░ tools рдЖрдкрдХреЛ рдмреЗрд╣рддрд░ support рджреЗ рд╕рдХрддреЗ рд╣реИрдВред + +рдпрд╣ Python type hints рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╕ рдПрдХ **рддреНрд╡рд░рд┐рдд tutorial / refresher** рд╣реИред рдЗрд╕рдореЗрдВ рдХреЗрд╡рд▓ рдЙрддрдирд╛ рд╣реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рддрдирд╛ рдЙрдиреНрд╣реЗрдВ **FastAPI** рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд░реВрдк рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИ... рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╣реИред + +**FastAPI** рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрдиреНрд╣реАрдВ type hints рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдпреЗ рдЗрд╕реЗ рдХрдИ рдлрд╛рдпрджреЗ рдФрд░ рд▓рд╛рдн рджреЗрддреЗ рд╣реИрдВред + +рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдЖрдк рдХрднреА **FastAPI** рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рднреА рдХрд░рддреЗ, рддрдм рднреА рдЗрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕реАрдЦрдиреЗ рд╕реЗ рдЖрдкрдХреЛ рд▓рд╛рдн рд╣реЛрдЧрд╛ред + +/// note | рдиреЛрдЯ + +рдЕрдЧрд░ рдЖрдк Python expert рд╣реИрдВ, рдФрд░ type hints рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдм рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЕрдЧрд▓реЗ chapter рдкрд░ рдЬрд╛рдПрдБред + +/// + +## рдкреНрд░реЗрд░рдгрд╛ { #motivation } + +рдЖрдЗрдП рдПрдХ рд╕рд░рд▓ рдЙрджрд╛рд╣рд░рдг рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ: + +{* ../../docs_src/python_types/tutorial001_py310.py *} + +рдЗрд╕ program рдХреЛ call рдХрд░рдиреЗ рдкрд░ output рдЖрддрд╛ рд╣реИ: + +``` +John Doe +``` + +Function рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ: + +* рдПрдХ `first_name` рдФрд░ `last_name` рд▓реЗрддрд╛ рд╣реИред +* рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рдХреЛ `title()` рдХреЗ рд╕рд╛рде upper case рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИред +* рдЙрдиреНрд╣реЗрдВ рдмреАрдЪ рдореЗрдВ рдПрдХ space рдХреЗ рд╕рд╛рде Concatenate рдХрд░рддрд╛ рд╣реИред + +{* ../../docs_src/python_types/tutorial001_py310.py hl[2] *} + +### рдЗрд╕реЗ edit рдХрд░реЗрдВ { #edit-it } + +рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╕рд░рд▓ program рд╣реИред + +рд▓реЗрдХрд┐рди рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдЗрд╕реЗ scratch рд╕реЗ рд▓рд┐рдЦ рд░рд╣реЗ рдереЗред + +рдХрд┐рд╕реА point рдкрд░ рдЖрдк function define рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЖрдкрдХреЗ parameters рддреИрдпрд╛рд░ рд╣реИрдВ... + +рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдкрдХреЛ "рд╡рд╣ method рдЬреЛ рдкрд╣рд▓реЗ рдЕрдХреНрд╖рд░ рдХреЛ upper case рдореЗрдВ рдмрджрд▓рддрд╛ рд╣реИ" call рдХрд░рдирд╛ рд╣реИред + +рдХреНрдпрд╛ рд╡рд╣ `upper` рдерд╛? рдХреНрдпрд╛ рд╡рд╣ `uppercase` рдерд╛? `first_uppercase`? `capitalize`? + +рдлрд┐рд░, рдЖрдк programmer рдХреЗ рдкреБрд░рд╛рдиреЗ рджреЛрд╕реНрдд, editor autocompletion рдХреЗ рд╕рд╛рде рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВред + +рдЖрдк function рдХрд╛ рдкрд╣рд▓рд╛ parameter, `first_name`, рдлрд┐рд░ рдПрдХ dot (`.`) type рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдлрд┐рд░ completion trigger рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП `Ctrl+Space` рджрдмрд╛рддреЗ рд╣реИрдВред + +рд▓реЗрдХрд┐рди, рджреБрдЦ рдХреА рдмрд╛рдд рд╣реИ, рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рдорд┐рд▓рддрд╛: + +
+
+### Types рдЬреЛрдбрд╝реЗрдВ { #add-types }
+
+рдЖрдЗрдП рдкрд┐рдЫрд▓реЗ version рдХреА рдПрдХ single line рдмрджрд▓рддреЗ рд╣реИрдВред
+
+рд╣рдо рдареАрдХ рдЗрд╕ fragment рдХреЛ, function рдХреЗ parameters рдХреЛ, рдЗрд╕рд╕реЗ рдмрджрд▓реЗрдВрдЧреЗ:
+
+```Python
+ first_name, last_name
+```
+
+рдЗрд╕рдореЗрдВ:
+
+```Python
+ first_name: str, last_name: str
+```
+
+рдмрд╕ рдЗрддрдирд╛ рд╣реАред
+
+рдпрд╣реА "type hints" рд╣реИрдВ:
+
+{* ../../docs_src/python_types/tutorial002_py310.py hl[1] *}
+
+рдпрд╣ default values declare рдХрд░рдиреЗ рдЬреИрд╕рд╛ рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕рдореЗрдВ рд╣реЛрддрд╛:
+
+```Python
+ first_name="john", last_name="doe"
+```
+
+рдпрд╣ рдПрдХ рдЕрд▓рдЧ рдЪреАрдЬрд╝ рд╣реИред
+
+рд╣рдо colons (`:`) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, equals (`=`) рдХрд╛ рдирд╣реАрдВред
+
+рдФрд░ type hints рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдпрд╣ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рдХрд┐ рдмрд┐рдирд╛ рдЙрдирдХреЗ рдЬреЛ рд╣реЛрддрд╛, рд╡рд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ред
+
+рд▓реЗрдХрд┐рди рдЕрдм, рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рдлрд┐рд░ рд╕реЗ рдЙрд╕ function рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рдмреАрдЪ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди type hints рдХреЗ рд╕рд╛рдеред
+
+рдЙрд╕реА point рдкрд░, рдЖрдк `Ctrl+Space` рдХреЗ рд╕рд╛рде autocomplete trigger рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ:
+
+
+
+рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк options рджреЗрдЦрддреЗ рд╣реБрдП scroll рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдм рддрдХ рдЖрдкрдХреЛ рд╡рд╣ рди рдорд┐рд▓ рдЬрд╛рдП рдЬреЛ "рдкрд╣рдЪрд╛рдирд╛ рд╣реБрдЖ рд▓рдЧреЗ":
+
+
+
+## рдФрд░ рдкреНрд░реЗрд░рдгрд╛ { #more-motivation }
+
+рдЗрд╕ function рдХреЛ рджреЗрдЦреЗрдВ, рдЗрд╕рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ type hints рд╣реИрдВ:
+
+{* ../../docs_src/python_types/tutorial003_py310.py hl[1] *}
+
+рдХреНрдпреЛрдВрдХрд┐ editor variables рдХреЗ types рдЬрд╛рдирддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдХреЗрд╡рд▓ completion рд╣реА рдирд╣реАрдВ рдорд┐рд▓рддрд╛, рдЖрдкрдХреЛ error checks рднреА рдорд┐рд▓рддреЗ рд╣реИрдВ:
+
+
+
+рдЕрдм рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ рдареАрдХ рдХрд░рдирд╛ рд╣реИ, `age` рдХреЛ `str(age)` рдХреЗ рд╕рд╛рде string рдореЗрдВ convert рдХрд░рдирд╛ рд╣реИ:
+
+{* ../../docs_src/python_types/tutorial004_py310.py hl[2] *}
+
+## Types declare рдХрд░рдирд╛ { #declaring-types }
+
+рдЖрдкрдиреЗ рдЕрднреА type hints declare рдХрд░рдиреЗ рдХреА рдореБрдЦреНрдп рдЬрдЧрд╣ рджреЗрдЦреАред Function parameters рдХреЗ рд░реВрдк рдореЗрдВред
+
+рдпрд╣реА рд╡рд╣ рдореБрдЦреНрдп рдЬрдЧрд╣ рднреА рд╣реИ рдЬрд╣рд╛рдБ рдЖрдк рдЙрдиреНрд╣реЗрдВ **FastAPI** рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
+
+### Simple types { #simple-types }
+
+рдЖрдк рд╕рднреА standard Python types declare рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ `str` рд╣реА рдирд╣реАрдВред
+
+рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+
+* `int`
+* `float`
+* `bool`
+* `bytes`
+
+{* ../../docs_src/python_types/tutorial005_py310.py hl[1] *}
+
+### `typing` module { #typing-module }
+
+рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд use cases рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ standard library рдХреЗ `typing` module рд╕реЗ рдХреБрдЫ рдЪреАрдЬрд╝реЗрдВ import рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЬрдм рдЖрдк declare рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ "рдХреЛрдИ рднреА type" рд╣реИ, рддреЛ рдЖрдк `typing` рд╕реЗ `Any` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+
+```python
+from typing import Any
+
+
+def some_function(data: Any):
+ print(data)
+```
+
+### Generic types { #generic-types }
+
+рдХреБрдЫ types square brackets рдореЗрдВ "type parameters" рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рдЙрдирдХреЗ internal types define рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП "strings рдХреА list" рдХреЛ `list[str]` declare рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
+
+рдЬреЛ types type parameters рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ рдЙрдиреНрд╣реЗрдВ **Generic types** рдпрд╛ **Generics** рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЖрдк рдЙрдиреНрд╣реАрдВ builtin types рдХреЛ generics рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (square brackets рдФрд░ рдЕрдВрджрд░ types рдХреЗ рд╕рд╛рде):
+
+* `list`
+* `tuple`
+* `set`
+* `dict`
+
+#### List { #list }
+
+рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдЗрдП рдПрдХ variable рдХреЛ `str` рдХреА `list` рдХреЗ рд░реВрдк рдореЗрдВ define рдХрд░рддреЗ рд╣реИрдВред
+
+Variable рдХреЛ рдЙрд╕реА colon (`:`) syntax рдХреЗ рд╕рд╛рде declare рдХрд░реЗрдВред
+
+Type рдХреЗ рд░реВрдк рдореЗрдВ, `list` рд░рдЦреЗрдВред
+
+рдХреНрдпреЛрдВрдХрд┐ list рдПрдХ рдРрд╕рд╛ type рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ internal types рд╣реЛрддреЗ рд╣реИрдВ, рдЖрдк рдЙрдиреНрд╣реЗрдВ square brackets рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВ:
+
+{* ../../docs_src/python_types/tutorial006_py310.py hl[1] *}
+
+/// note | рдиреЛрдЯ
+
+Square brackets рдореЗрдВ рдореМрдЬреВрдж рдЙрди internal types рдХреЛ "type parameters" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдЗрд╕ case рдореЗрдВ, `str` рд╡рд╣ type parameter рд╣реИ рдЬреЛ `list` рдХреЛ pass рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
+
+///
+
+рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ: "variable `items` рдПрдХ `list` рд╣реИ, рдФрд░ рдЗрд╕ list рдХрд╛ рдкреНрд░рддреНрдпреЗрдХ item рдПрдХ `str` рд╣реИ"ред
+
+рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ, рдЖрдкрдХрд╛ editor list рд╕реЗ items process рдХрд░рддреЗ рд╕рдордп рднреА support рджреЗ рд╕рдХрддрд╛ рд╣реИ:
+
+
+
+Types рдХреЗ рдмрд┐рдирд╛, рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИред
+
+рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ variable `item`, list `items` рдХреЗ elements рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
+
+рдФрд░ рдлрд┐рд░ рднреА, editor рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ `str` рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рд▓рд┐рдП support рджреЗрддрд╛ рд╣реИред
+
+#### Tuple рдФрд░ Set { #tuple-and-set }
+
+рдЖрдк `tuple`s рдФрд░ `set`s declare рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдРрд╕рд╛ рд╣реА рдХрд░реЗрдВрдЧреЗ:
+
+{* ../../docs_src/python_types/tutorial007_py310.py hl[1] *}
+
+рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:
+
+* Variable `items_t` 3 items рд╡рд╛рд▓рд╛ рдПрдХ `tuple` рд╣реИ, рдПрдХ `int`, рджреВрд╕рд░рд╛ `int`, рдФрд░ рдПрдХ `str`ред
+* Variable `items_s` рдПрдХ `set` рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рддреНрдпреЗрдХ item рдХрд╛ type `bytes` рд╣реИред
+
+#### Dict { #dict }
+
+`dict` define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк 2 type parameters pass рдХрд░рддреЗ рд╣реИрдВ, commas рд╕реЗ separatedред
+
+рдкрд╣рд▓рд╛ type parameter `dict` рдХреА keys рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИред
+
+рджреВрд╕рд░рд╛ type parameter `dict` рдХреА values рдХреЗ рд▓рд┐рдП рд╣реЛрддрд╛ рд╣реИ:
+
+{* ../../docs_src/python_types/tutorial008_py310.py hl[1] *}
+
+рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ:
+
+* Variable `prices` рдПрдХ `dict` рд╣реИ:
+ * рдЗрд╕ `dict` рдХреА keys `str` type рдХреА рд╣реИрдВ (рдорд╛рди рд▓реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ item рдХрд╛ рдирд╛рдо)ред
+ * рдЗрд╕ `dict` рдХреА values `float` type рдХреА рд╣реИрдВ (рдорд╛рди рд▓реЗрдВ, рдкреНрд░рддреНрдпреЗрдХ item рдХреА price)ред
+
+#### Union { #union }
+
+рдЖрдк declare рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ variable **рдХрдИ types** рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ `int` рдпрд╛ рдПрдХ `str`ред
+
+рдЗрд╕реЗ define рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рджреЛрдиреЛрдВ types рдХреЛ separate рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП vertical bar (`|`) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
+
+рдЗрд╕реЗ "union" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ variable рдЙрди рджреЛ type sets рдХреЗ union рдореЗрдВ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial008b_py310.py!}
+```
+
+рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ `item` рдПрдХ `int` рдпрд╛ рдПрдХ `str` рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
+
+#### рд╕рдВрднрд╡рддрдГ `None` { #possibly-none }
+
+рдЖрдк declare рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕реА value рдХрд╛ type, рдЬреИрд╕реЗ `str`, рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╣ `None` рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред
+
+//// tab | Python 3.10+
+
+```Python hl_lines="1"
+{!> ../../docs_src/python_types/tutorial009_py310.py!}
+```
+
+////
+
+рд╕рд┐рд░реНрдл `str` рдХреЗ рдмрдЬрд╛рдп `str | None` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ editor рдЖрдкрдХреЛ рдЙрди errors рдХреЛ detect рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдЬрд╣рд╛рдБ рдЖрдк рдпрд╣ рдорд╛рди рд░рд╣реЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХреЛрдИ value рд╣рдореЗрд╢рд╛ `str` рд╣реИ, рдЬрдмрдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣ `None` рднреА рд╣реЛ рд╕рдХрддреА рд╣реИред
+
+### Classes рдХреЛ types рдХреЗ рд░реВрдк рдореЗрдВ { #classes-as-types }
+
+рдЖрдк рдХрд┐рд╕реА class рдХреЛ рднреА variable рдХреЗ type рдХреЗ рд░реВрдк рдореЗрдВ declare рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдорд╛рди рд▓реЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ class `Person` рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ name рд╣реИ:
+
+{* ../../docs_src/python_types/tutorial010_py310.py hl[1:3] *}
+
+рдлрд┐рд░ рдЖрдк рдХрд┐рд╕реА variable рдХреЛ `Person` type рдХрд╛ declare рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
+
+{* ../../docs_src/python_types/tutorial010_py310.py hl[6] *}
+
+рдФрд░ рдлрд┐рд░, рдлрд┐рд░ рд╕реЗ, рдЖрдкрдХреЛ рдкреВрд░рд╛ editor support рдорд┐рд▓рддрд╛ рд╣реИ:
+
+
+
+рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ "`one_person`, class `Person` рдХрд╛ рдПрдХ **instance** рд╣реИ"ред
+
+рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ "`one_person`, `Person` рдирд╛рдо рдХреА **class** рд╣реИ"ред
+
+## Pydantic models { #pydantic-models }
+
+[Pydantic](https://docs.pydantic.dev/) data validation рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ Python library рд╣реИред
+
+рдЖрдк data рдХреА "shape" рдХреЛ attributes рд╡рд╛рд▓реА classes рдХреЗ рд░реВрдк рдореЗрдВ declare рдХрд░рддреЗ рд╣реИрдВред
+
+рдФрд░ рдкреНрд░рддреНрдпреЗрдХ attribute рдХрд╛ рдПрдХ type рд╣реЛрддрд╛ рд╣реИред
+
+рдлрд┐рд░ рдЖрдк рдХреБрдЫ values рдХреЗ рд╕рд╛рде рдЙрд╕ class рдХрд╛ рдПрдХ instance create рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ values рдХреЛ validate рдХрд░реЗрдЧрд╛, рдЙрдиреНрд╣реЗрдВ appropriate type рдореЗрдВ convert рдХрд░реЗрдЧрд╛ (рдЕрдЧрд░ рдРрд╕рд╛ case рд╣реИ) рдФрд░ рдЖрдкрдХреЛ рдкреВрд░реЗ data рд╡рд╛рд▓рд╛ рдПрдХ object рджреЗрдЧрд╛ред
+
+рдФрд░ рдЙрд╕ resulting object рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдкреВрд░рд╛ editor support рдорд┐рд▓рддрд╛ рд╣реИред
+
+Official Pydantic docs рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
+
+{* ../../docs_src/python_types/tutorial011_py310.py *}
+
+/// note | рдиреЛрдЯ
+
+рдЕрдзрд┐рдХ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП [Pydantic, рдЗрд╕рдХреЗ docs рджреЗрдЦреЗрдВ](https://docs.pydantic.dev/)ред
+
+///
+
+**FastAPI** рдкреВрд░реА рддрд░рд╣ рд╕реЗ Pydantic рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
+
+рдЖрдк рдпрд╣ рд╕рдм practice рдореЗрдВ [Tutorial - User Guide](tutorial/index.md) рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рджреЗрдЦреЗрдВрдЧреЗред
+
+## Metadata Annotations рдХреЗ рд╕рд╛рде Type Hints { #type-hints-with-metadata-annotations }
+
+Python рдореЗрдВ рдПрдХ feature рднреА рд╣реИ рдЬреЛ `Annotated` рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди type hints рдореЗрдВ **рдЕрддрд┐рд░рд┐рдХреНрдд metadata** рдбрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
+
+рдЖрдк `typing` рд╕реЗ `Annotated` import рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+{* ../../docs_src/python_types/tutorial013_py310.py hl[1,4] *}
+
+Python рдЦреБрдж рдЗрд╕ `Annotated` рдХреЗ рд╕рд╛рде рдХреБрдЫ рдирд╣реАрдВ рдХрд░рддрд╛ред рдФрд░ editors рдФрд░ рдЕрдиреНрдп tools рдХреЗ рд▓рд┐рдП, type рдЕрднреА рднреА `str` рд╣реИред
+
+рд▓реЗрдХрд┐рди рдЖрдк `Annotated` рдореЗрдВ рдЗрд╕ рдЬрдЧрд╣ рдХрд╛ рдЙрдкрдпреЛрдЧ **FastAPI** рдХреЛ рдЕрддрд┐рд░рд┐рдХреНрдд metadata рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЕрдкрдиреА application рдХреЛ рдХреИрд╕реЗ behave рдХрд░рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
+
+рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ `Annotated` рдХреЛ pass рдХрд┐рдпрд╛ рдЧрдпрд╛ **рдкрд╣рд▓рд╛ *type parameter*** рд╣реА **actual type** рд╣реЛрддрд╛ рд╣реИред рдмрд╛рдХреА рд╕рдм, рдЕрдиреНрдп tools рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ metadata рд╣реИред
+
+рдЕрднреА рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдЬрд╛рдирдирд╛ рд╣реИ рдХрд┐ `Annotated` рдореМрдЬреВрдж рд╣реИ, рдФрд░ рдпрд╣ standard Python рд╣реИред ЁЯШО
+
+рдмрд╛рдж рдореЗрдВ рдЖрдк рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдпрд╣ рдХрд┐рддрдирд╛ **powerful** рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
+
+/// tip | рд╕реБрдЭрд╛рд╡
+
+рдпрд╣ рддрдереНрдп рдХрд┐ рдпрд╣ **standard Python** рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ editor рдореЗрдВ, рдЕрдкрдиреЗ code рдХреЛ analyze рдФрд░ refactor рдХрд░рдиреЗ рд╡рд╛рд▓реЗ tools рдХреЗ рд╕рд╛рде, рдЖрджрд┐, рдЕрднреА рднреА **рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ possible developer experience** рдорд┐рд▓реЗрдЧрд╛ред тЬи
+
+рдФрд░ рдпрд╣ рднреА рдХрд┐ рдЖрдкрдХрд╛ code рдХрдИ рдЕрдиреНрдп Python tools рдФрд░ libraries рдХреЗ рд╕рд╛рде рдмрд╣реБрдд compatible рд╣реЛрдЧрд╛ред ЁЯЪА
+
+///
+
+## **FastAPI** рдореЗрдВ Type hints { #type-hints-in-fastapi }
+
+**FastAPI** рдЗрди type hints рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдХрд░ рдХрдИ рдЪреАрдЬрд╝реЗрдВ рдХрд░рддрд╛ рд╣реИред
+
+**FastAPI** рдХреЗ рд╕рд╛рде рдЖрдк type hints рдХреЗ рд╕рд╛рде parameters declare рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдорд┐рд▓рддрд╛ рд╣реИ:
+
+* **Editor support**ред
+* **Type checks**ред
+
+...рдФрд░ **FastAPI** рдЙрдиреНрд╣реАрдВ declarations рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ:
+
+* **Requirements define** рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: request path parameters, query parameters, headers, bodies, dependencies, рдЖрджрд┐ рд╕реЗред
+* **Data convert** рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: request рд╕реЗ required type рдореЗрдВред
+* **Data validate** рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП: рдкреНрд░рддреНрдпреЗрдХ request рд╕реЗ рдЖрдиреЗ рд╡рд╛рд▓реЗ data рдХреЛ:
+ * Data invalid рд╣реЛрдиреЗ рдкрд░ client рдХреЛ рд▓реМрдЯрд╛рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ **automatic errors** generate рдХрд░рдирд╛ред
+* OpenAPI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ API рдХреЛ **document** рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
+ * рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд┐рд░ automatic interactive documentation user interfaces рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
+
+рдпрд╣ рд╕рдм abstract рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рдЪрд┐рдВрддрд╛ рди рдХрд░реЗрдВред рдЖрдк рдпрд╣ рд╕рдм action рдореЗрдВ [Tutorial - User Guide](tutorial/index.md) рдореЗрдВ рджреЗрдЦреЗрдВрдЧреЗред
+
+рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ standard Python types рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдПрдХ рд╣реА рдЬрдЧрд╣ рдкрд░ (рдЕрдзрд┐рдХ classes, decorators, рдЖрджрд┐ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрдЬрд╛рдп), **FastAPI** рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░рд╛ рдХрд╛рдо рдХрд░ рджреЗрдЧрд╛ред
+
+/// note | рдиреЛрдЯ
+
+рдЕрдЧрд░ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдкреВрд░реЗ tutorial рд╕реЗ рдЧреБрдЬрд░ рдЪреБрдХреЗ рд╣реИрдВ рдФрд░ types рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рдЖрдП рд╣реИрдВ, рддреЛ рдПрдХ рдЕрдЪреНрдЫрд╛ resource [`mypy` рдХреА "cheat sheet"](https://mypy.readthedocs.io/en/latest/cheat_sheet_py3.html) рд╣реИред
+
+///
diff --git a/docs/hi/docs/virtual-environments.md b/docs/hi/docs/virtual-environments.md
new file mode 100644
index 000000000..cacadd0df
--- /dev/null
+++ b/docs/hi/docs/virtual-environments.md
@@ -0,0 +1,864 @@
+# Virtual Environments { #virtual-environments }
+
+рдЬрдм рдЖрдк Python projects рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рдВрднрд╡рддрдГ рдЖрдкрдХреЛ рд╣рд░ project рдХреЗ рд▓рд┐рдП install рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ packages рдХреЛ рдЕрд▓рдЧ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ **virtual environment** (рдпрд╛ рдХреЛрдИ рд╕рдорд╛рди рддрд░реАрдХрд╛) рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
+
+/// note | рдиреЛрдЯ
+
+рдЕрдЧрд░ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ virtual environments рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдмрдирд╛рдирд╛ рдФрд░ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдирд╛ рд╣реИ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕ section рдХреЛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣ рд╕рдХрддреЗ рд╣реИрдВред ЁЯдУ
+
+///
+
+/// tip | рд╕реБрдЭрд╛рд╡
+
+рдПрдХ **virtual environment**, рдПрдХ **environment variable** рд╕реЗ рдЕрд▓рдЧ рд╣реЛрддрд╛ рд╣реИред
+
+рдПрдХ **environment variable** system рдореЗрдВ рдПрдХ variable рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ programs рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
+
+рдПрдХ **virtual environment** рдПрдХ directory рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреБрдЫ files рд╣реЛрддреА рд╣реИрдВред
+
+///
+
+/// note | рдиреЛрдЯ
+
+рдпрд╣ рдкреЗрдЬ рдЖрдкрдХреЛ **virtual environments** рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕рд┐рдЦрд╛рдПрдЧрд╛ред
+
+рдЕрдЧрд░ рдЖрдк рдЕрдкрдиреЗ рд▓рд┐рдП **рд╕рдм рдХреБрдЫ manage рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ tool** рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ (рдЬрд┐рд╕рдореЗрдВ Python install рдХрд░рдирд╛ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ), рддреЛ [uv](https://github.com/astral-sh/uv) рдЖрдЬрд╝рдорд╛рдПрдБред
+
+///
+
+## Project рдмрдирд╛рдПрдБ { #create-a-project }
+
+рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЕрдкрдиреЗ project рдХреЗ рд▓рд┐рдП рдПрдХ directory рдмрдирд╛рдПрдБред
+
+рдореИрдВ рд╕рд╛рдорд╛рдиреНрдпрддрдГ рдЕрдкрдиреА home/user directory рдХреЗ рдЕрдВрджрд░ `code` рдирд╛рдо рдХреА рдПрдХ directory рдмрдирд╛рддрд╛ рд╣реВрдБред
+
+рдФрд░ рдЙрд╕рдХреЗ рдЕрдВрджрд░ рд╣рд░ project рдХреЗ рд▓рд┐рдП рдПрдХ directory рдмрдирд╛рддрд╛ рд╣реВрдБред
+
+