# ASGI

ASGI (Asynchronous Server Gateway Interface) is a standard interface for async-capable Python web servers, frameworks, and applications.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## A Starlette middleware guide for FastAPI and Python developers

DevFeed: [A Starlette middleware guide for FastAPI and Python developers](<https://devfeed.tech/articles/a-starlette-middleware-guide-for-fastapi-and-python-developers-20057.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/starlette-middleware/>)

Author: Aditya Raj

Published: 2026-08-28T07:00:00Z

Content type: tutorial

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Python](<https://devfeed.tech/topics/python.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [auth](<https://devfeed.tech/tags/auth.md>), [cors](<https://devfeed.tech/tags/cors.md>), [developers](<https://devfeed.tech/tags/developers.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [guide](<https://devfeed.tech/tags/guide.md>), [logging](<https://devfeed.tech/tags/logging.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [python](<https://devfeed.tech/tags/python.md>), [python-articles](<https://devfeed.tech/tags/python-articles.md>), [starlette](<https://devfeed.tech/tags/starlette.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This guide explains how middleware works in Starlette and FastAPI applications. It covers built-in middleware, custom middleware using pure ASGI and BaseHTTPMiddleware, and execution order when multiple middleware layers process requests and responses.

### Source excerpt

Starlette middlewares let you apply logging, auth, and CORS across every route in a web app without duplicating code. This article covers Starlette's built-in middlewares, building custom ones with pure ASGI and BaseHTTPMiddleware, and the execution-order rules that keep your FastAPI applications secure and fast. Read on to learn how to build and order Starlette middlewares the right way.

## WebSocket support is now available for Python Functions

DevFeed: [WebSocket support is now available for Python Functions](<https://devfeed.tech/articles/websocket-support-is-now-available-for-python-functions-1198.md>)

Original publisher: [Read original article](<https://vercel.com/changelog/websocket-support-is-now-available-for-python-functions>)

Author: Ricardo Gonzalez

Published: 2026-07-23T00:00:00Z

Content type: release

Language: en

Sources: [Vercel News](<https://devfeed.tech/sources/vercel-news.md>)

Topics: [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Python](<https://devfeed.tech/topics/python.md>), [Vercel](<https://devfeed.tech/topics/vercel.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [real-time](<https://devfeed.tech/topics/real-time.md>), [Django](<https://devfeed.tech/topics/django.md>), [Flask](<https://devfeed.tech/topics/flask.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [Frameworks](<https://devfeed.tech/topics/frameworks.md>), [AI Chat](<https://devfeed.tech/topics/ai-chat.md>), [client](<https://devfeed.tech/topics/client.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [applications](<https://devfeed.tech/tags/applications.md>), [code](<https://devfeed.tech/tags/code.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [communication](<https://devfeed.tech/tags/communication.md>), [django](<https://devfeed.tech/tags/django.md>), [examples](<https://devfeed.tech/tags/examples.md>), [features](<https://devfeed.tech/tags/features.md>), [flask](<https://devfeed.tech/tags/flask.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [python](<https://devfeed.tech/tags/python.md>), [real-time](<https://devfeed.tech/tags/real-time.md>), [server](<https://devfeed.tech/tags/server.md>), [streaming](<https://devfeed.tech/tags/streaming.md>), [vercel](<https://devfeed.tech/tags/vercel.md>)

### AI overview

Vercel has added WebSocket support for Python applications and Functions. The feature supports bidirectional client-server communication for real-time use cases such as interactive AI streaming, chat, and multiplayer collaboration, with compatibility for ASGI and WSGI applications including FastAPI, Django, and Flask.

### Source excerpt

Vercel now supports WebSocket connections for Python applications. WebSockets enable bidirectional communication between client- and server-side code, powering real-time features like interactive AI streaming, real-time chat, and multiplayer live collaboration. Both ASGI and WSGI applications are supported, including frameworks like FastAPI, Django, and Flask. Explore the FastAPI AI Chat and Flask AI Chat examples, or read the WebSockets documentation to get started. Read more

## Starlette vs FastAPI: what FastAPI actually adds

DevFeed: [Starlette vs FastAPI: what FastAPI actually adds](<https://devfeed.tech/articles/starlette-vs-fastapi-what-fastapi-actually-adds-20058.md>)

Original publisher: [Read original article](<https://www.honeybadger.io/blog/starlette-vs-fastapi/>)

Author: Farhan Hasin Chowdhury

Published: 2026-07-20T07:00:00Z

Content type: comparison

Language: en

Sources: [Honeybadger](<https://devfeed.tech/sources/honeybadger.md>)

Topics: [FastAPI](<https://devfeed.tech/topics/fastapi.md>), [Pydantic](<https://devfeed.tech/topics/pydantic.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [OpenAPI Specification](<https://devfeed.tech/topics/openapi.md>), [Dependency injection](<https://devfeed.tech/topics/dependency-injection.md>), [Python](<https://devfeed.tech/topics/python.md>), [WebSocket](<https://devfeed.tech/topics/websocket.md>), [Cross-origin resource sharing (CORS)](<https://devfeed.tech/topics/cors.md>)

Tags: [cors](<https://devfeed.tech/tags/cors.md>), [data-validation](<https://devfeed.tech/tags/data-validation.md>), [dependency-injection](<https://devfeed.tech/tags/dependency-injection.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [frameworks](<https://devfeed.tech/tags/frameworks.md>), [openapi](<https://devfeed.tech/tags/openapi.md>), [python](<https://devfeed.tech/tags/python.md>), [python-articles](<https://devfeed.tech/tags/python-articles.md>), [starlette](<https://devfeed.tech/tags/starlette.md>), [websocket](<https://devfeed.tech/tags/websocket.md>)

### AI overview

This comparison explains how FastAPI builds on Starlette and Pydantic. Starlette provides the ASGI-based HTTP layer, while Pydantic handles typed data validation; FastAPI adds type-driven parameter parsing, dependency injection, and automatic OpenAPI documentation. It also discusses when using raw Starlette may be preferable.

### Source excerpt

FastAPI is built on Starlette, but most developers never look at what's underneath. Learn what FastAPI actually adds on top of Starlette and Pydantic, what comes straight from Starlette, and when dropping down to raw Starlette makes more sense than pulling in the full stack.

## Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama

DevFeed: [Building a Local Voice Dictation Device with Raspberry Pi, Whisper, and Ollama](<https://devfeed.tech/articles/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer-25154.md>)

Original publisher: [Read original article](<https://blog.droidchef.dev/i-built-my-own-wisprflow-fully-local-under-50-and-it-types-into-any-computer/>)

Author: Ishan Khanna

Published: 2026-03-16T20:55:45Z

Content type: tutorial

Language: en

Sources: [Ishan Khanna](<https://devfeed.tech/sources/ishan-khanna.md>)

Topics: [Raspberry Pi](<https://devfeed.tech/topics/raspberry-pi.md>), [Whisper](<https://devfeed.tech/topics/whisper.md>), [Ollama](<https://devfeed.tech/topics/ollama.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [Python](<https://devfeed.tech/topics/python.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [Windows](<https://devfeed.tech/topics/windows.md>), [CircuitPython](<https://devfeed.tech/topics/circuitpython.md>)

Tags: [ai](<https://devfeed.tech/tags/ai.md>), [audio](<https://devfeed.tech/tags/audio.md>), [circuitpython](<https://devfeed.tech/tags/circuitpython.md>), [fastapi](<https://devfeed.tech/tags/fastapi.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [large-language-models](<https://devfeed.tech/tags/large-language-models.md>), [llms](<https://devfeed.tech/tags/llms.md>), [ollama](<https://devfeed.tech/tags/ollama.md>), [python](<https://devfeed.tech/tags/python.md>), [raspberry-pi](<https://devfeed.tech/tags/raspberry-pi.md>), [transcription](<https://devfeed.tech/tags/transcription.md>), [whisper](<https://devfeed.tech/tags/whisper.md>), [windows](<https://devfeed.tech/tags/windows.md>)

### AI overview

This tutorial describes a local voice dictation device built with a Raspberry Pi Zero W, Raspberry Pi Pico, and an INMP441 microphone. Audio is sent over Wi-Fi to a Windows PC for Whisper transcription and Ollama text cleanup, then returned through a USB keyboard interface via a KVM switch. The author reports about $40 in hardware costs and under 700 milliseconds of end-to-end latency.

### Source excerpt

I spend most of my day talking to AI agents in the terminal. Claude Code, ChatGPT, aider -- you name it. And every time I have to type out a long, detailed prompt explaining what I want refactored, I think: why am I typing this when I could just say

## How to secure Python Flask applications

DevFeed: [How to secure Python Flask applications](<https://devfeed.tech/articles/how-to-secure-python-flask-applications-8079.md>)

Original publisher: [Read original article](<https://snyk.io/blog/secure-python-flask-applications/>)

Author: Gourav Singh Bais

Published: 2024-05-21T05:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Flask](<https://devfeed.tech/topics/flask.md>), [Python](<https://devfeed.tech/topics/python.md>), [web applications](<https://devfeed.tech/topics/web-applications.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [acquisition](<https://devfeed.tech/tags/acquisition.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [article](<https://devfeed.tech/tags/article.md>), [best-practices](<https://devfeed.tech/tags/best-practices.md>), [blog](<https://devfeed.tech/tags/blog.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [developer](<https://devfeed.tech/tags/developer.md>), [draftdotdev](<https://devfeed.tech/tags/draftdotdev.md>), [flask](<https://devfeed.tech/tags/flask.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [python](<https://devfeed.tech/tags/python.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [web](<https://devfeed.tech/tags/web.md>), [web-applications](<https://devfeed.tech/tags/web-applications.md>)

### AI overview

This article explains how to secure Python Flask applications. It introduces Flask and the WSGI standard, identifies common risks such as XSS, CSRF, and SQL injection, and presents insecure configuration examples alongside practices for mitigating security issues.

### Source excerpt

In this article, you'll learn about some best practices related to securing Python applications built with the Flask web application framework. You'll start by looking at some insecure configuration examples and then learn how to mitigate and fix any issues.

## Lemon : Koa 风格的 Python 异步 Web 框架

DevFeed: [Lemon : Koa 风格的 Python 异步 Web 框架](<https://devfeed.tech/articles/lemon-koa-python-web-40998.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/lemon-overview/>)

Author: Joway

Published: 2018-01-08T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [Python](<https://devfeed.tech/topics/python.md>), [Koa](<https://devfeed.tech/topics/koa.md>), [middleware](<https://devfeed.tech/topics/middleware.md>), [ASGI](<https://devfeed.tech/topics/asgi.md>)

Tags: [async](<https://devfeed.tech/tags/async.md>), [middleware](<https://devfeed.tech/tags/middleware.md>), [python](<https://devfeed.tech/tags/python.md>), [tech](<https://devfeed.tech/tags/tech.md>), [web](<https://devfeed.tech/tags/web.md>)

### AI overview

The article introduces Lemon, a Python asynchronous web framework designed with a Koa-style middleware model. It explains the distinction between server and application responsibilities, discusses ASGI-compatible servers such as uvicorn, and describes Lemon's routing and context design.

### Source excerpt

前段时间想要写一些简短高效的 API ，背后的工作无非就是一些计算和数据处理，但是可能并发量会比较高。当我在 Python 的生态里去搜寻一些靠谱的 Web 框架时，很难找到一个设计优秀且运行效率高的框架。尤其是当我已经习惯了 NodeJS 的 Koa 那种简洁明了的设计时，很难再喜欢上像 Flask 那种装饰器的写法和各种概念拢杂在一起的设计。最后实在没有办法，就自己写了个符合我个人审美的框架 Lemon 。