Hi Stalwart Team,
First of all, I want to say that what you are building here is nothing short of a revolution. Stalwart is incredibly fast, lightweight, and modern. It is a breath of fresh air compared to bloated, heavy legacy systems like Apache James. You guys are doing an amazing job, and the architecture is brilliant!
As we are expanding our use of Stalwart—especially utilizing the Group Accounts and JMAP Core features to manage both Groups and Team Folders —we have encountered a limitation regarding file management.
Currently, the POST /upload/<accountId> endpoint expects the raw binary of a file in a single HTTP request. While this works perfectly for standard email attachments (usually under 50MB), it becomes a major bottleneck for Drive/File Storage capabilities.
In real-world business scenarios, users frequently need to upload and share large files ranging from hundreds of megabytes to multiple gigabytes (such as design assets, video logs, or database backups). Without chunked/resumable upload support:
-
Network Instability: If a connection drops at 95% of a 2GB upload, the user has to restart from 0%.
-
Server Resource Spikes: Handling massive single-request payloads puts unnecessary strain on the HTTP listener buffers compared to streaming structured chunks.
The Proposal: We would highly leverage and appreciate it if Stalwart could support Resumable / Chunked Uploads directly on the JMAP upload endpoint (perhaps using standard HTTP Headers like Content-Range or a dedicated chunk-session mechanism), allowing clients to slice files into 5MB–10MB parts and assemble them seamlessly into a single blobId.
Thank you for your tireless work and for pushing the boundaries of modern email and collaboration infrastructure. Keep up the phenomenal work!