From Fedora Project Wiki

Hawkey, a new Package Management API


Hawkey is a package management library built on top of libsolv.

Note that this feature has been merged into Features/DNF. Also see the FESCo ticket.


Current status

  • Targeted release: Fedora 18
  • Last updated: 2012-07-12
  • Percentage of completion: 40%

Detailed Description

hawkey is a library allowing clients to query and resolve dependencies of RPM packages based on the current state of RPMDB and yum repositories. While a superset of the functionality itself is available in yum, the new API promises to bring unification, fewer restrictions on clients' implementation language (yum API is in Python) and eventually performance improvements.

The API version of hawkey in Fedora 18 will not be final one, it will more be to demonstrate the concepts of the library. Projects needing depsolving in Fedora will be encouraged to start experimenting and reporting bugs and missing features.

Benefit to Fedora

  • easier bindings to other languages than Python
  • concise, clear package management API
  • better performance (through utilizing libsolv)

The potential API consumer:

  • dnf (the next generation yum)
  • release engineering tools
  • PackageKit
  • graphical package management tools
  • Anaconda


Including libsolv in Fedora

This is a library for fast dependencies resolving created and maintained by SUSE. The rpms are in Fedora already, we will need to rebase the package as needed.

hawkey package

Including documentation for the API.

How To Test

Unit tests for both C and Python bindings are included.

User Experience

None visible (hawkey is a new library).


Hawkey is a new library and will be only depended on by DNF (the new package manger based off yum).

Contingency Plan

None necessary, yum and it's API will still be available.


Release Notes

Comments and Discussion