Releases: L3tum/HardwareInformation
v6.0.0 Alpha
Happy New Year!
This release has been a long time coming and fixes a number of issues with the Library in general, but also specific issues in particular.
Most notably the Providers, i.e. the code that actually gathers all the hardware information for a specific platform, have been rewritten to be more extendable. While doing so I've found another way to make them more robust, but that may take some time again to fully plan out.
Furthermore, the library now supports multiple CPUs! For that there is now an Array Cpus
. The old Cpu
Field for single CPUs will point to the first CPU in the new array, or null if there are none or more than one.
Additionally, the support for heterogenic architectures (e.g. BIG.little) and other hardware has been improved, working around some peculiar erratas for example. Also PCI-devices will be collected on both Windows and Linux offering another list, similar to the already existing GPU and USB Devices. In particular USB Devices have also gone through a rewrite to not only make them more performant to be fetched from the OS, but also more robust.
The Linux Provider has gone through one of the more extensive rewrites. It now only depends on what should be available on any Linux installation and does not require any sudo
or other permissions.
There have also been a number of deprecations and removals, however I tried to keep everything backwards compatible. If something is missing or not working please let me know.
Lastly, while I do try to be as crossplatform as possible, working with Mac and especially the new ARM Macs has been a right pain in the behind. Not only is the documentation scarce and sometimes even wrong, the information provided on Macs in general is subpar and even what is available seems to be hit-and-miss. I'm currently trying to debug these issues. That is also one of the reasons why this release is only a pre-release. I may go one of two routes of either writing a full ARM Provider or fleshing out the Mac Provider. It's most likely going to be the former.
Full Changelog: 5.0.0...6.0.0-rc2
v5.0.2
v5.0.1
v5.0.0
Changes
- Moved setters to internal-only and Lists to ReadOnlyLists (thanks @caunt )
- Switched to IntelliJ-based code formatter
- Fixed support for 32-bit platforms
- Moved some common provider stuff out of MachineInformationGatherer and into CommonInformationProvider
- Fixed Linux vendor information parsing breaking when no vendor nor name is available
Features
- Added more GPU Information (VRAM, Type, Supported Vulkan Version) via Vulkan
- Added GPU vendor strings similar to CPU vendor strings
- Added USB information (multiple Names, Drivers, Vendors, ProductID/Name, VendorID/Name...) via USBVendorList