As mentioned in the readme section one of my concerns is that I rely on two hard dependencies that must run on the host machine to read sensor data (CPU, GPU, etc..) and I so far didn't find anything conclusive I could do in Rust specifically.
We can use this issue to gather and brainstorm ideas to pull this off from rust directly.
Current approach
The current approach requires running HWiNfo and remotehwinfo separately from this application. HWiNfo exposes sensor data over a shared memory access (don't quote me on that) and remotehwinfo makes it accessible over the network which this app pulls.
Dream
The dream would be to not having to rely on any external dependencies and use an intrinsic rust implementation to read the data but as I found out, this isn't straightforward.
Ideas
Here's a list of ideas I've tried and I want to keep trying to pull this off:
- I've tried to use the
systemstats crate but this doesn't expose anything related to GPU
- I've looked at an alternative to
NVML for AMD cards and I've found ROCm but there is no rust implementation/bindings at the moment.
- I've tried to use
windows-rs and the performance counter API but It didn't seem like thermal information was exposed. Note that I also tried the winapi crate but same issue.
- I've entertained the idea of rewriting the backend using
.NET and use LibreHardwareMonitor. I haven't explored this too deeply as I'd like to stay in Rust land if possible.
- I've tried the
psutil rust crate but same issue with GPU data not exposed.
At this point, my best idea is to rewrite using .NET but I'm very much not familiar with its ecosystem 🤷
Any idea is welcome!
As mentioned in the readme section one of my concerns is that I rely on two hard dependencies that must run on the host machine to read sensor data (CPU, GPU, etc..) and I so far didn't find anything conclusive I could do in Rust specifically.
We can use this issue to gather and brainstorm ideas to pull this off from rust directly.
Current approach
The current approach requires running
HWiNfoandremotehwinfoseparately from this application.HWiNfoexposes sensor data over a shared memory access (don't quote me on that) andremotehwinfomakes it accessible over the network which this app pulls.Dream
The dream would be to not having to rely on any external dependencies and use an intrinsic rust implementation to read the data but as I found out, this isn't straightforward.
Ideas
Here's a list of ideas I've tried and I want to keep trying to pull this off:
systemstatscrate but this doesn't expose anything related to GPUNVMLfor AMD cards and I've foundROCmbut there is no rust implementation/bindings at the moment.windows-rsand the performance counter API but It didn't seem like thermal information was exposed. Note that I also tried thewinapicrate but same issue..NETand useLibreHardwareMonitor. I haven't explored this too deeply as I'd like to stay in Rust land if possible.psutilrust crate but same issue with GPU data not exposed.At this point, my best idea is to rewrite using
.NETbut I'm very much not familiar with its ecosystem 🤷Any idea is welcome!