Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
46 commits
Select commit Hold shift + click to select a range
55564ff
Add Windows platform support (x86_64-pc-windows-msvc)
arnibarican Mar 16, 2026
7c11c14
Add PHASE_ALPHA.md: Windows sensor parity gap analysis
arnibarican Mar 16, 2026
ac67937
Enable NVML GPU sensors and per-core CPU frequency on Windows
arnibarican Mar 16, 2026
2837f42
Add NVMe and SATA SMART data reading on Windows
arnibarican Mar 16, 2026
78d2aa6
Add PCI, USB, and audio device enumeration on Windows
arnibarican Mar 16, 2026
683d35e
Update PHASE_ALPHA.md with implementation status
arnibarican Mar 16, 2026
b38a9dc
Add PHASE_ALPHA_EXIT_REPORT.md
arnibarican Mar 16, 2026
33138b6
Fix Linux-specific strings shown on Windows
arnibarican Mar 16, 2026
4a31936
Add PHASE_BETA.md implementation plan and phase_status.json
arnibarican Mar 16, 2026
bfcad5a
B2: Rich network interface details via GetAdaptersAddresses
arnibarican Mar 16, 2026
f89cf60
B1+B3+B5: Battery, motherboard details, audio codec on Windows
arnibarican Mar 16, 2026
4830f21
B4+B6+B7+B8: USB details, display outputs, WHEA errors, IPMI
arnibarican Mar 16, 2026
b255d7c
PHASE BETA complete: exit report and phase_status.json update
arnibarican Mar 16, 2026
1c9b145
Add PHASE_GAMMA.md plan and update phase_status.json
arnibarican Mar 16, 2026
552244a
Move completed phase docs to archive/
arnibarican Mar 16, 2026
3728022
G1: WinRing0 port I/O, MSR, and PCI config integration
arnibarican Mar 16, 2026
2ae0deb
G2-G8: SuperIO, RAPL, HSMP, PCIe link, AMD ADL, SMBus sensors
arnibarican Mar 16, 2026
cd75258
PHASE GAMMA complete: exit report and phase_status.json update
arnibarican Mar 16, 2026
e183254
Add PHASE_DELTA.md plan, archive GAMMA, update phase_status.json
arnibarican Mar 16, 2026
63c803a
D1: SMBIOS table parsing via GetSystemFirmwareTable on Windows
arnibarican Mar 16, 2026
ccbb408
D2-D7: DIMM details, microcode, BIOS date, chipset, network fix, ACPI…
arnibarican Mar 16, 2026
9d74ef4
D8: Fix all Windows build warnings
arnibarican Mar 16, 2026
f21d094
PHASE DELTA complete: exit report, phase_status.json, zero warnings
arnibarican Mar 16, 2026
7862823
Add PHASE_EPSILON.md plan, archive DELTA, update phase_status.json
arnibarican Mar 16, 2026
cbf0194
E6: Fix formatting and clippy for Linux CI compatibility
arnibarican Mar 16, 2026
ccec053
E1+E2+E5: Windows CI, release workflow, README update
arnibarican Mar 16, 2026
b57fe23
E3+E4: Tagged release v0.1.3-win.1 and winget manifest
arnibarican Mar 16, 2026
956f54b
PHASE EPSILON complete: exit report and phase_status.json
arnibarican Mar 16, 2026
a19dae1
Fix admin detection using Windows TokenElevation API
arnibarican Mar 16, 2026
12ffec8
Fix admin detection, SMART matching, and elevation gating
arnibarican Mar 16, 2026
9fff752
Fix NVMe SMART: correct struct size + adapter-level fallback
arnibarican Mar 16, 2026
e363ed3
Add cli_testing_plan.md for Windows platform testing
arnibarican Mar 16, 2026
a6ed19d
Add CLI smoke test suite and testing results
arnibarican Mar 16, 2026
f3b2382
Add consolidated Windows Port section to README
arnibarican Mar 16, 2026
b0bb73d
Merge windows-port into main for CI activation
arndawg Mar 16, 2026
7cb7d90
Add PHASE_ZETA.md, update winget manifest to schema 1.10.0
arnibarican Mar 16, 2026
d5dc6d0
Sync main with windows-port (ZETA)
arndawg Mar 16, 2026
f8b0847
Z6: Add automated winget version bump workflow
arnibarican Mar 16, 2026
57a423e
PHASE ZETA complete: winget PR, upstream PR, exit report
arnibarican Mar 16, 2026
b17161f
Potential fix for pull request finding
arndawg Mar 16, 2026
e83ba46
Fix cargo fmt + clippy for CI (storage, text, mod, nvme_win)
arnibarican Mar 16, 2026
ad89e04
Fix CI: cargo fmt + clippy formatting
arndawg Mar 16, 2026
e9b0e69
Fix clippy: .or_else(|| ...) -> .or(...) in cpu.rs microcode
arnibarican Mar 17, 2026
c1cada5
Fix clippy unnecessary_lazy_evaluations in cpu.rs
arndawg Mar 17, 2026
ebac38e
Fix clippy: unused_mut on Linux, or_else -> or
arnibarican Mar 17, 2026
9c747fc
Fix clippy unused_mut on Linux
arndawg Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 43 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,46 @@ jobs:
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- run: cargo build --release --no-default-features

windows-check:
name: Check (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows
- run: cargo check --target x86_64-pc-windows-msvc

windows-build:
name: Build Release (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows
- run: cargo build --release --target x86_64-pc-windows-msvc
- uses: actions/upload-artifact@v4
with:
name: sio-windows-x86_64
path: target/x86_64-pc-windows-msvc/release/sio.exe

windows-test:
name: Test (Windows)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: windows
- run: cargo test --target x86_64-pc-windows-msvc
38 changes: 35 additions & 3 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ env:
CARGO_TERM_COLOR: always

jobs:
build:
build-linux:
name: Build (${{ matrix.target }})
runs-on: ubuntu-latest
strategy:
Expand Down Expand Up @@ -47,6 +47,35 @@ jobs:
name: ${{ matrix.artifact }}
path: ${{ matrix.artifact }}.tar.gz

build-windows:
name: Build (x86_64-pc-windows-msvc)
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc
- uses: Swatinem/rust-cache@v2
with:
key: x86_64-pc-windows-msvc
- name: Build
run: cargo build --release --target x86_64-pc-windows-msvc
- name: Package
shell: pwsh
run: |
$version = "${{ github.ref_name }}"
$zipName = "sio-windows-x86_64-$version.zip"
Compress-Archive -Path "target/x86_64-pc-windows-msvc/release/sio.exe" -DestinationPath $zipName
$hash = (Get-FileHash $zipName -Algorithm SHA256).Hash
"$hash $zipName" | Out-File -Encoding UTF8 "$zipName.sha256"
echo "ZIP_NAME=$zipName" >> $env:GITHUB_ENV
- uses: actions/upload-artifact@v4
with:
name: sio-windows-x86_64
path: |
sio-windows-x86_64-*.zip
sio-windows-x86_64-*.zip.sha256

publish-crate:
name: Publish to crates.io
runs-on: ubuntu-latest
Expand All @@ -66,7 +95,7 @@ jobs:

github-release:
name: GitHub Release
needs: [build]
needs: [build-linux, build-windows]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -77,4 +106,7 @@ jobs:
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: artifacts/**/*.tar.gz
files: |
artifacts/**/*.tar.gz
artifacts/**/*.zip
artifacts/**/*.sha256
17 changes: 17 additions & 0 deletions .github/workflows/winget-update.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name: Update winget manifest

on:
release:
types: [published]

jobs:
winget:
name: Update winget package
if: "!github.event.release.prerelease"
runs-on: windows-latest
steps:
- uses: vedantmgoyal9/winget-releaser@v2
with:
identifier: arndawg.sio
installers-regex: 'sio-windows-x86_64-.*\.zip$'
token: ${{ secrets.WINGET_TOKEN }}
131 changes: 127 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 10 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "siomon"
version = "0.1.3"
edition = "2024"
rust-version = "1.85"
description = "Linux hardware information and sensor monitoring tool"
description = "Hardware information and sensor monitoring tool"
license = "MIT"
keywords = ["hardware", "sensors", "hwmon", "system-info", "monitoring"]
categories = ["command-line-utilities", "hardware-support"]
Expand Down Expand Up @@ -45,8 +45,6 @@ crossterm = { version = "0.28", optional = true }
# CLI
clap = { version = "4", features = ["derive", "env", "string"] }

# Unix / Linux syscalls
nix = { version = "0.29", features = ["fs", "ioctl", "mman", "process"] }
libc = "0.2"

# Dynamic loading (NVML)
Expand All @@ -68,9 +66,18 @@ env_logger = "0.11"
# Sysfs enumeration
glob = "0.3"

[target.'cfg(unix)'.dependencies]
# Unix / Linux syscalls
nix = { version = "0.29", features = ["fs", "ioctl", "mman", "process"] }

# IPMI BMC sensor access via /dev/ipmi0 ioctl
ipmi-rs = { version = "0.5", default-features = true }

[target.'cfg(windows)'.dependencies]
sysinfo = "0.33"
winapi = { version = "0.3", features = ["sysinfoapi", "winbase", "powerbase", "minwinbase", "fileapi", "ioapiset", "handleapi", "winnt", "winioctl", "iphlpapi", "iptypes", "ifdef", "winsock2", "ws2def", "ws2ipdef", "wingdi", "winuser", "processthreadsapi", "securitybaseapi"] }
libloading = "0.8"

[profile.release]
opt-level = "z"
lto = true
Expand Down
Loading
Loading