12 releases (6 breaking)

0.7.2 Feb 5, 2024
0.7.1 Oct 27, 2023
0.6.3 Sep 21, 2023
0.6.2 Nov 13, 2022
0.1.0 Dec 10, 2021

#186 in Database interfaces

Download history 1040/week @ 2024-08-19 1015/week @ 2024-08-26 1197/week @ 2024-09-02 1654/week @ 2024-09-09 1697/week @ 2024-09-16 2621/week @ 2024-09-23 1294/week @ 2024-09-30 1167/week @ 2024-10-07 1230/week @ 2024-10-14 1266/week @ 2024-10-21 1637/week @ 2024-10-28 1659/week @ 2024-11-04 3396/week @ 2024-11-11 1813/week @ 2024-11-18 1227/week @ 2024-11-25 1161/week @ 2024-12-02

7,801 downloads per month
Used in 12 crates (3 directly)

MIT license

330KB
583 lines

PCI ID Parser

Crates.io Docs.rs

This is a library that lets you use a PCI ID database, such as one shipped with Linux distros or from https://pci-ids.ucw.cz/. It can either read the locally installed file or fetch one from the website.

Usage

Read the local DB:

use pciid_parser::Database;

let db = Database::read().unwrap();

// Get vendor
let vendor = db.vendors.get("1002").unwrap();
assert_eq!(vendor.name, "Advanced Micro Devices, Inc. [AMD/ATI]");
// Get device
let device = vendor.devices.get("67df").unwrap();
assert_eq!(
  device.name,
  "Ellesmere [Radeon RX 470/480/570/570X/580/580X/590]"
);  

// Get full device and subdevice info:
let info = db.get_device_info("1002", "67DF", "1DA2", "E387");

// Get class
let class = db.classes.get("05").unwrap();
assert_eq!(class.name, "Memory controller");

You can also fetch the online DB:

use pciid_parser::Database;

let db = Database::get_online().unwrap();

Dependencies

~0–620KB
~11K SLoC