TokTok / c-toxcore

The future of online communications.
https://tox.chat
GNU General Public License v3.0
2.28k stars 286 forks source link

File transfers in groups #1546

Open anon649573 opened 4 years ago

anon649573 commented 4 years ago

Are there any plans to implement file transfers in group chats?

Not only would this allow sending files to multiple people, but clients will likely need the support of this feature from Toxcore to implement inline images in groups (such as the screenshot tool of uTox and similar functionality in qTox).

Sending images is very commonly used functionality for contacts and group chats in popular instant messaging platforms, which is why I think it is important for Tox clients to also have this feature.

iphydf commented 4 years ago

Yes, we do have plans for this. In fact, the new DHT based group chats support custom packets, which would support a file transfer protocol to be built on top of it. We're planning to externalise more application layer protocols from toxcore and layer them on top of each other. We can then reuse the file transfers implemented in toxcore (or the next iteration thereof) for both 1:1 FTs and group FTs.

Monsterovich commented 4 years ago

Yes, we do have plans for this. In fact, the new DHT based group chats support custom packets, which would support a file transfer protocol to be built on top of it. We're planning to externalise more application layer protocols from toxcore and layer them on top of each other. We can then reuse the file transfers implemented in toxcore (or the next iteration thereof) for both 1:1 FTs and group FTs.

How would these group file transfers work: tree topology, torrents-like or direct transfer from 1 to n clients?

Green-Sky commented 4 years ago

Sounds like every thing would be possible. For large groups torrent-like and for small groups direct-transfer would be best imho.

Green-Sky commented 2 months ago

I have been daily driving my still evolving prototype for group transfers for over a year now.

The prototype code can be found here https://github.com/Green-Sky/solanaceae_ngc_ft1 It is a torrent style implementation.

(It can be use with any solanaceae client like tomato and totato.)