What do you all think would be the largest useable size of a WebXDC app? I’m thinking about max size for sharing with Delta Chat users? The current app I’m working on is approaching 20MB.
We had a limit of 640 kB in the past: Proposal: remove/bump `.xdc` file size cap
On the sender the limit was removed: feat: remove webxdc sending limit by link2xt · Pull Request #5268 · chatmail/core · GitHub
Receivers had 4 MiB limit at some point which is also removed: feat: remove receiver limit on .xdc size by link2xt · Pull Request #5058 · chatmail/core · GitHub
Now there is no limit other than the limit on the message size enforced by email servers.
20 MB definitely sounds too big, with the whole Quake webxdc fitting in 5 MB.
I don’t think there is a definitive answer (apart from, as @link2xt mentioned, how much the messenger and the server can itself handle).
If you look at the size of videos, those often reach ~20MB in size, so I would say that 20 MB is fine.
That took some effort though: had to compromise on removing all player models except one and all maps except one. The original Quake demo assets (as opposed to the Open Arena ones that are budled with the .xdc file) would fit in around 20 MB if one were to compress them.
This has already made rounds earlier:
q1k3.xdc (17.6 KB)
A tiny FPS for js13k. 2 levels, 5 types of enemies, 3 weapons, 30 different textures, music, dynamic lighting, doors, enemy AI with line of sight checks, spacial Audio
Remember how even 100kB was enough for webxdc in the beginning?
I’m using ‘old school’ email server that I host myself on my own equipment, so file size is more or less unlimited. For the newer relays that people are setting up, are there file limit sizes built into those? (I don’t have a good understanding of relays, so hopefully this is not a dumb question.)
It is unlimited for you, but recipients on other servers may be unable to receive your webxdc if the message size is too large.
Default restriction for chatmail relays is 30 MiB, and that is for base64-encoded message, so actual limit is roughly 20 MiB: