# rpm-pkg-count Counts installed RPM packages using `librpm`. > Note: This crate does **not** make use of `librpm-sys` but links to the C > library itself. ## Requirements In order to compile this crate, one must have `librpm` installed on the system. It is usually provided by package managers under the name `rpm-devel` (e.g., OpenSUSE), `rpm-tools` (e.g., Arch Linux) or `librpm-dev` (e.g., Debian). ## Usage The crate provides two cargo features, exactly **one** of them must be enabled. 1. `compile-time`: Link to librpm during compile-time using Rust's `extern "C"` functionality. This requires librpm to be installed on every target's system for a binary to run at all. 2. `runtime`: Link to librpm during runtime using the [`libloading` crate](https://crates.io/crates/libloading). This way, `count()` simply returns `None` if librpm is not installed on the target system. The crate then exposes exactly _one_ public function which takes no arguments and returns the package count as an `Option`. An example usage is shown here: ```rs use rpm_pkg_count::count; match unsafe { count() } { Some(count) => println!("{count} packages installed."), None => println!("packages could not be counted"), } ```