persepolisdm / persepolis

Persepolis is a download manager written in Python.
https://persepolisdm.github.io
GNU General Public License v3.0
6.32k stars 657 forks source link

Query about persepolis_lib #1013

Closed Tarek-Hasan closed 2 months ago

Tarek-Hasan commented 2 months ago

In Persepolis version 5.0, you guys introduced persepolis_lib. I'm curious, why make a new file transfer library instead of using existing solutions? You could have used curl+libtorrent instead of aria2. Honestly, it feels like this meme.

standards

alireza-amirsamimi commented 2 months ago

hello Maybe my explanation was not clear in the releases note. To be clear, we were looking for a fully Python alternative to work with more easily. As you know, the valuable Aria2 project was written with C++ and to communicate with it, we had to use APIs provided by Aria2, which caused problems. One of the problems we had was that sometimes it made the code complicated and made it difficult to develop the project. For example, we do not have this problem with YT-DLP. We easily import it as a module and work with it. Therefore, we were looking for a Python alternative for Aria2 that has the features of Aria2(Multi-segment downloading and the other features). Although curl is a very valuable project, it lacks the features we want and is written in C. We did not design a new standard. We used the powerful Python-Requests library that was available and the great features of this library made it very easy for us. We didn't have to build everything from scratch. Working with this library is very easy. After writing Persepolisـlib, the number of our code lines became much less and the codes became clearer and simpler. In the end, I have a small request. I don't know you and you don't know me either. Please avoid jokes and memes. Thank you.