github.com/jaypipes/ghw (go): package ghw can determine various hardware-related information about the host computer:  * Memory * CPU * Block storage * Topology * Network * PCI * GPU  Information about the host computer's memory can be retrieved using the Memory function which returns a pointer to a MemoryInfo struct.  The CPU function returns a CPUInfo struct that contains information about the CPUs on the host system.  Information about the host computer's local block storage is returned from the Block function. This function returns a pointer to a BlockInfo struct.  Information about the host computer's architecture (NUMA vs. SMP), the host's node layout and processor caches can be retrieved from the Topology function. This function returns a pointer to a TopologyInfo struct.  Information about the host computer's networking hardware is returned from the Network function. This function returns a pointer to a NetworkInfo struct.  ghw contains a PCI database inspection and querying facility that allows developers to not only gather information about devices on a local PCI bus but also query for information about hardware device classes, vendor and product information.  **NOTE**: Parsing of the PCI-IDS file database is provided by the separate http://github.com/jaypipes/pcidb library. You can read that library's README for more information about the various structs that are exposed on the PCIInfo struct.  PCIInfo.ListDevices is used to iterate over a host's PCI devices:  The following code snippet shows how to call the PCIInfo.GetDevice method and use its returned PCIDevice struct pointer:  Information about the host computer's graphics hardware is returned from the GPU function. This function returns a pointer to a GPUInfo struct.
Keywords: discovery|golang-hardware-discovery|golang-library|hardware|inspection-library