Improve encryption/decryption UI lag on Web
planned
Tom Raganowicz
When downloading files (especially) on Web the overall experience is subpar vs mobile and desktop clients.
The decryption speed is slower. It will either require improvements on the encryption scheme layer: https://discord.com/channels/1069654792902815845/1140911911479808081/1140912036629463100
or alternatively will require pushing performance to the limits on our side via custom implementation of Rclone's encryption (Rust, WASM, XSalsa20).
We should also implement chunked download (in a similar way as current multipart upload works) combined with browser File System Access API: https://developer.mozilla.org/en-US/docs/Web/API/File_System_API so instead of "downloading" all data to memory and then blocking website on the decryption process, we could download and decrypt gradually appending the stream to the disk.
If possible we should consider allowing to "Save file as" to custom location: https://discord.com/channels/1069654792902815845/1147114642653577217 in case user doesn't have enough data in their ~/Downloads folder.
Finally, regardless of the encryption performance. It shouldn't affect the UI responsiveness which is the case now. This can be solved by introducing Service Worker, so the heavy calculations can be offloaded to the non-main rendering thread.
Tom Raganowicz
planned