Stop reimplementing file uploads for your Python ASGI app. Meet tussi.
Every few months I find myself in the same situation: "we need to support large file uploads" . And every time, it's a chore.
This time, I decided to fix it properly to never have that headache again. I'm sharing my painkiller.
What I found
I discovered TUS . It's an open protocol for resumable file uploads. Clients pick up exactly where they left off after a network drop. There are TUS clients for multiple platforms and languages.
I checked out the existing Python server implementations. None of them fit my use case:
Most require a database to track upload state
Some need a separate daemon process
Multi-worker safety is either missing or poorly documented
So I decided, we need a better one.
Meet tussi
tussi is a TUS 1.0.0 resumable upload server for Python.…