Arlodotexe / OwlCore.Storage

The most flexible file system abstraction, ever. Built in partnership with the UWP Community.
16 stars 4 forks source link

Implementation for accessing torrent #68

Open itsWindows11 opened 4 months ago

itsWindows11 commented 4 months ago

Original discussion: https://discord.com/channels/372137812037730304/1255950330588434512/1255950330588434512 (thread)

For this transfer manager project, a torrent implementation is needed to compete with the likes of BitTorrent, Free Download Manager etc.

Arlodotexe commented 4 months ago

Is there a particular torrent library you had in mind which we could lean on / wrap around to simplify the storage implementation?

itsWindows11 commented 4 months ago

MonoTorrent suffices I guess, haven't checked it out as it doesn't seem to have any documentation files I can quickly skim but it seems to support most file capabilities we would need.

No idea about write streams though, I usually used torrents for downloads.

Arlodotexe commented 4 months ago

I have vague recollection of someone in the community pointing out that MonoTorrent only supports writing a file to a disk path. After some digging, I found the discussion here, under the ByteStream Torrent Project from Luandersonn Apps.

Arlodotexe commented 3 months ago

In lieu of a polished torrent library, we have the option of doing it ourselves. Normally I'd say this is unfeasible to build from scratch in a reasonable amount of time, but Seán O'Flynn has written a potentially invaluable, seemingly complete guide on how to build a bittorrent client from scratch in C#

https://www.seanjoflynn.com/research/bittorrent.html