4 releases
new 0.2.0 | Apr 24, 2025 |
---|---|
0.1.2 | Apr 23, 2025 |
0.1.1 | Apr 23, 2025 |
0.1.0 | Apr 22, 2025 |
#141 in Operating systems
392 downloads per month
39KB
491 lines
🧠 tauri-plugin-hwinfo
A cross-platform Tauri plugin to fetch detailed system hardware information from the user's device, including CPU, RAM, GPU, and OS metadata — all accessible through both Rust and JavaScript/TypeScript APIs.
⚠️ Platform Support: Desktop-only. Mobile returns placeholder values.
⚠️ Testing: Only Windows is tested and confirmed working so far.
🔧 Features
- ✅ CPU Info (manufacturer, model, threads, max frequency)
- ✅ RAM Info (total memory in MB)
- ✅ GPU Info (model, manufacturer, VRAM in MB, CUDA support, Vulkan support)
- ✅ OS Info (OS name and version)
- ✅ Full Tauri v2 permissions support
- ✅ JS/TS bindings via
@tauri-apps/api/core::invoke
📦 Installation
From Crates.io (Rust)
cargo add tauri-plugin-hwinfo
From GitHub (bleeding edge)
[dependencies]
tauri-plugin-hwinfo = { git = "https://github.com/nikolchaa/tauri-plugin-hwinfo" }
🛠️ Usage (Rust Backend)
Option 1: Auto-bind commands via invoke_handler (if calling from JS/TS manually)
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_hwinfo::init())
.invoke_handler(tauri::generate_handler![
tauri_plugin_hwinfo::get_cpu_info,
tauri_plugin_hwinfo::get_gpu_info,
tauri_plugin_hwinfo::get_ram_info,
tauri_plugin_hwinfo::get_os_info
])
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Option 2: Plugin-only setup (if using only the frontend API)
#[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() {
tauri::Builder::default()
.plugin(tauri_plugin_hwinfo::init())
.run(tauri::generate_context!())
.expect("error while running tauri application");
}
Use Option 1 if you want to manually expose commands to JS via
invoke()
.Use Option 2 if you're only using
tauri-plugin-hwinfo
's built-in TS API.
Add this to your src-tauri/capabilities/default.json
:
{
"permissions": [
"hwinfo:allow-cpu-info",
"hwinfo:allow-gpu-info",
"hwinfo:allow-ram-info",
"hwinfo:allow-os-info"
]
}
📜 Output Format
// CPU Info:
{
"manufacturer": "AuthenticAMD",
"model": "AMD Ryzen 9 5900X 12-Core Processor",
"maxFrequency": 3701,
"threads": 24
}
// RAM Info:
{
"sizeMb": 32686
}
// GPU Info:
{
"manufacturer": "Advanced Micro Devices, Inc.",
"model": "AMD Radeon RX 6950 XT",
"vramMb": 16311,
"supportsCuda": false,
"supportsVulkan": true
}
// OS Info:
{
"name": "Windows",
"version": "10.0.26100"
}
📌 Frontend API (JS/TS)
Install:
npm i tauri-plugin-hwinfo
Usage:
import {
getCpuInfo,
getRamInfo,
getGpuInfo,
getOsInfo,
} from "tauri-plugin-hwinfo";
async function logSystemInfo() {
const cpu = await getCpuInfo();
const ram = await getRamInfo();
const gpu = await getGpuInfo();
const os = await getOsInfo();
console.log("CPU Info:", cpu);
console.log("RAM Info:", ram);
console.log("GPU Info:", gpu);
console.log("OS Info:", os);
}
Dependencies
~152MB
~2.5M SLoC