Skip to content
This repository was archived by the owner on Apr 23, 2026. It is now read-only.

Read sensor data from rust #1

Description

@Magellol

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is needed

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions