Proposal: remove/bump `.xdc` file size cap

As we know, in Delta Chat there is a limit on how big of a webxdc app (.xdc file) you can send. The current limit is 640 kB (see source code). Which I think is not enough.

I have bumped my head into this ceiling several times already, and it remains a big blocker there:

And honestly, the existence of this limit doesn’t make much sense to me. Why can I send regular files of any size, but not apps? The comment says:

We introduce a limit to force developer to create small .xdc to save user’s traffic and disk space for a better ux.

But

  • App developers are interested in making apps with great UX themselves. I don’t think it’s great to force them to do it.
  • When you’re porting an existing app, you don’t have resources/power to change the app too much. Even if you do change it, there will likely be additional maintenance costs (merging the upstream would get harder), and generally it’s a pain in the butt if the repo is using the said project in form of a library, like, say, some text editor, like Quill, or VS Code (the online version).
  • Currently when you try to send an app bigger than the said limit, it just silently doesn’t work. It doesn’t say why. You can see that there is a file, but it doesn’t get recognized as an app. This can be very frustrating for new developers.

The limit has already been bumped almost 2 years ago from 100 kB to 640 kB (where it stays now) (see this commit).

With WASM getting more traction, especially in the land of CRDTs, and webxdc getting some popularity as well, I think it is time to rise the limit once again, or completely remove it.

3 Likes

What would be a reasonable upgrade for the limit?
I personally feel like 2-4mb could be still ok.

Thought we might need another way to encourage casual/noob devs to make small apps?
For example we could say there is a higher limit when you self sign your webxdc, so we get people to use our tooling which can suggest tipps to make it smaller… :person_shrugging:
just some rough ideas.

Another related factor could be the planned feature of blob deduplication, which would reduce the storage use of attachments, like save the large webxdc only one time instead of a copy for each chat it was sent in.

1 Like

I have opened a PR to remove receiver limit:

1 Like

The drawing apps are already slightly above 2 MB, same with DOOM. I’d go for at least 6, in case removing the limit completely is out of question.

The create-xdc.sh prints a warning when the size is > 640 kB, just saying.

Are you really planning to release “DOOM” as webxdc app?

If it’s not too hard — why not. I have already packaged an experimental build: doom.zip (rename to .xdc). From this comment: webxdc: `.wasm` files don't work · Issue #2635 · deltachat/deltachat-android · GitHub

1 Like

Nice! :partying_face:
How to start it?
Unfortunately it doesn’t work in DC due to the file size.

Well… That’s the point :sweat_smile:

On Android you can select the attachment, and launch it without the message, but it’s not playable there. I used to be able to send larger apps, but looks like it something changed recently (like a month or two) and now the forward workaround doesn’t work.

I would say “DOOM” is a good reason to allow larger apps. :grin:

1 Like

Receiver size limit is going to be removed. As for sender limit, Delta Chat limits all messages to 25 MB, we can choose something below that for .xdc.

2 Likes