# librepo

> library providing C and Python API for downloading repository metadata and packages

**Wikidata**: [Q106095262](https://www.wikidata.org/wiki/Q106095262)  
**Source**: https://4ort.xyz/entity/librepo

## Summary
librepo is a free software library that provides C and Python APIs for downloading repository metadata and packages, primarily used in package management systems. It supports Unix-like operating systems and integrates with tools like libdnf. Its most recent stable release is version 1.13.0, published on February 2, 2021.

## Key Facts
- Instance of: Software library, Free software
- License: GNU Lesser General Public License, version 2.1 or later
- Programming languages: C, Python
- Operating system: Unix-like
- Latest version: 1.13.0 released on February 2, 2021
- Website: [http://rpm-software-management.github.io/librepo/](http://rpm-software-management.github.io/librepo/)
- Source code repository: [https://github.com/rpm-software-management/librepo](https://github.com/rpm-software-management/librepo)
- Packaged in: Fedora (librepo), Debian (librepo0), openSUSE (librepo), FreeBSD (misc/librepo)
- Copyright status: Copyrighted
- Use: Package manager

## FAQs
### Q: What is librepo used for?
A: librepo is used to download repository metadata and packages via C and Python APIs. It serves as a backend component in package managers such as DNF and other RPM-based tools.

### Q: Is librepo free to use?
A: Yes, librepo is free software distributed under the GNU Lesser General Public License (LGPL) version 2.1 or later, allowing users to run, modify, and redistribute it.

### Q: Which operating systems support librepo?
A: librepo runs on Unix-like operating systems, including Linux distributions such as Fedora, Debian, and openSUSE, as well as FreeBSD.

## Why It Matters
librepo plays a critical role in modern package management ecosystems, especially within RPM-based Linux distributions. By offering both C and Python interfaces, it enables developers to build robust tools for fetching and managing software repositories efficiently. As part of the broader RPM software management stack, librepo contributes to the reliability and performance of package managers like DNF. Its availability across major Linux distributions underscores its importance in maintaining consistent software delivery infrastructure.

## Notable For
- Dual-language API support (C and Python)
- Integration into widely-used package managers like DNF through libdnf
- Active maintenance with regular version releases up to at least early 2021
- Availability across multiple Linux and BSD platforms (Fedora, Debian, openSUSE, FreeBSD)
- Part of the official RPM software management project ecosystem

## Body

### Overview
librepo is a software library designed for downloading repository metadata and packages using either C or Python bindings. It is intended for integration into higher-level package management applications.

### Development & Licensing
- Licensed under the GNU Lesser General Public License (LGPL), version 2.1 or later.
- Hosted on GitHub at [https://github.com/rpm-software-management/librepo](https://github.com/rpm-software-management/librepo).
- Uses Git Smart HTTP over TLS for source control access.

### Technical Details
- Supports Unix-like operating systems only.
- Written primarily in C; includes Python bindings.
- Designed to work closely with libdnf, another core component in DNF-based package managers.
- Provides efficient handling of remote repository data including metalinks, mirrors, and checksum verification.

### Releases
Below are selected notable versions with their release dates:
- **1.9.1** – August 13, 2018
- **1.10.4** – July 4, 2019
- **1.11.3** – March 9, 2020
- **1.12.1** – August 22, 2020
- **1.13.0** – February 2, 2021

### Distribution Packages
librepo is packaged and maintained in several major platforms:
- **Fedora**: `librepo`
- **Debian Stable**: `librepo0` (as of November 2024)
- **openSUSE**: `librepo`
- **FreeBSD Ports**: `misc/librepo`

### Related Projects
- **libdnf**: A key consumer and integrator of librepo functionality.
- **DNF (Dandified YUM)**: The default package manager in Fedora which relies on librepo for repository operations.
- **Python**: One of two supported programming environments alongside C.

## References

1. [Source](https://api.github.com/repos/rpm-software-management/librepo)
2. [Release 1.9.1. 2018](https://github.com/rpm-software-management/librepo/releases/tag/1.9.1)
3. [Release 1.10.2. 2019](https://github.com/rpm-software-management/librepo/releases/tag/1.10.2)
4. [Release 1.10.3. 2019](https://github.com/rpm-software-management/librepo/releases/tag/1.10.3)
5. [Release 1.10.4. 2019](https://github.com/rpm-software-management/librepo/releases/tag/1.10.4)
6. [Release 1.11.0. 2019](https://github.com/rpm-software-management/librepo/releases/tag/1.11.0)
7. [Release 1.11.2. 2020](https://github.com/rpm-software-management/librepo/releases/tag/1.11.2)
8. [Release 1.11.3. 2020](https://github.com/rpm-software-management/librepo/releases/tag/1.11.3)
9. [Release 1.12.0. 2020](https://github.com/rpm-software-management/librepo/releases/tag/1.12.0)
10. [Release 1.12.1. 2020](https://github.com/rpm-software-management/librepo/releases/tag/1.12.1)
11. [Release 1.13.0. 2021](https://github.com/rpm-software-management/librepo/releases/tag/1.13.0)
12. [Release 1.14.0. 2021](https://github.com/rpm-software-management/librepo/releases/tag/1.14.0)
13. [Release 1.14.2. 2021](https://github.com/rpm-software-management/librepo/releases/tag/1.14.2)
14. [Release 1.14.3. 2022](https://github.com/rpm-software-management/librepo/releases/tag/1.14.3)
15. [Release 1.14.4. 2022](https://github.com/rpm-software-management/librepo/releases/tag/1.14.4)
16. [Release 1.14.5. 2022](https://github.com/rpm-software-management/librepo/releases/tag/1.14.5)
17. [Release 1.15.1. 2022](https://github.com/rpm-software-management/librepo/releases/tag/1.15.1)
18. [Release 1.15.2. 2023](https://github.com/rpm-software-management/librepo/releases/tag/1.15.2)
19. [Release 1.16.0. 2023](https://github.com/rpm-software-management/librepo/releases/tag/1.16.0)
20. [Release 1.17.0. 2023](https://github.com/rpm-software-management/librepo/releases/tag/1.17.0)
21. [Release 1.17.1. 2024](https://github.com/rpm-software-management/librepo/releases/tag/1.17.1)
22. [Release 1.17.2. 2024](https://github.com/rpm-software-management/librepo/releases/tag/1.17.2)
23. [Release 1.18.0. 2024](https://github.com/rpm-software-management/librepo/releases/tag/1.18.0)
24. [Release 1.18.1. 2024](https://github.com/rpm-software-management/librepo/releases/tag/1.18.1)
25. [Source](https://github.com/rpm-software-management/librepo/releases/tag/1.19.0)
26. [Release 1.20.0. 2025](https://github.com/rpm-software-management/librepo/releases/tag/1.20.0)