rpm-software-management / libdnf

Package management library.
GNU Lesser General Public License v2.1
184 stars 139 forks source link

[dnf5] collaborate on `libpowerloader` for repodata / package downloading #1452

Open wolfv opened 2 years ago

wolfv commented 2 years ago

Hi all,

I wanted to start a more formal discussion on collaborating on the powerloader effort. As we've discussed before, it's a port of parts of librepo to C++ (only the parts concerned with downloading of data, nothing about reading repodata formats).

I think it would match pretty well with the design of dnf!

Similarly to librepo, you can define DownloadTarget with checksums and Mirrors. Automatic mirror selection and parallel downloading, retries will be performed by a Downloader. Callbacks can be attached for progress bars etc.

We've also worked on zchunk support (including making zchunk available on Windows and macOS! :)

The "Mirror" can now be extended by subclassing it and there is an additional "authentication" state. This is used for communicating with (private) S3 or OCI registries.

Powerloader also includes some code to upload to mirrors, specifically S3 and OCI have a strict protocol for that.

For our part (to integrate powerloader into the mamba package manager) -- we're getting closer to shipping that as it already offers a lot of interesting benefits to the project.

I'd be curious to hear if there is (still) interest in trying this out and eventually collaborating on the project?

j-mracek commented 2 years ago

Thank you very much for reaching us. For sure we want to cooperate because there are multiple features that are not provided by current librepo. But there is one problem. Right now we are preparing the new packages for Fedora 38 and 39. We need to finish it firs and then we can start to work on replacement of librepo.