Skip to content
Niš, Serbia

Tauri Plugin HWInfo

A cross-platform Tauri v2 plugin that exposes CPU, RAM, GPU and OS details through unified Rust and TypeScript APIs. Published on crates.io and npm.

Role
Backend & Plugin Developer
Platform
Desktop (Cross-platform: Windows, Linux, macOS)
Category
Desktop
Year
2025
Tauri Plugin HWInfo cover: title and project illustration on a dark background

01 The brief

Assignment

Build a cross-platform Tauri plugin that provides system hardware information through unified Rust and TypeScript APIs, enabling developers to create performance monitoring and diagnostic tools.

Objective

Give Tauri developers one reliable way to read hardware details (CPU, RAM, GPU and OS) on every desktop platform, without writing platform-specific code.

Built with

  • Rust
  • Tauri v2
  • TypeScript
  • sysinfo (Rust crate)
  • winapi
  • Vulkan SDK
  • Linux sysfs
  • npm
  • crates.io

Project overview

Project Background

I created tauri-plugin-hwinfo, a cross-platform plugin for Tauri v2 that allows developers to fetch detailed system hardware information directly from desktop apps. The challenge was to design a plugin that is lightweight, fast, and integrates seamlessly with both Rust backends and TypeScript frontends, while exposing unified APIs for CPU, GPU, RAM, and OS metadata. This project filled a gap in the Tauri ecosystem, enabling developers to build performance monitoring and diagnostic tools without relying on heavy native bindings.


Objective

  • Build a cross-platform plugin for Tauri (Windows, macOS, Linux)
  • Provide detailed system information: CPU, GPU, RAM, OS
  • Expose unified APIs for both Rust and JavaScript/TypeScript
  • Ensure low overhead and native integration with sysinfo, winapi, Vulkan SDK, and Linux sysfs
  • Support full Tauri v2 permission system for secure access

Deliverables

  • Published Rust crate on crates.io (tauri-plugin-hwinfo)
  • Published npm package with TypeScript bindings
  • Full support for CPU, GPU, RAM, and OS metadata retrieval
  • Developer documentation with usage examples in both Rust and TypeScript
  • Open-source GitHub repository with install guides and integration examples

Timeline and Milestones

  • Project Kickoff: Apr 23, 2025
  • Early v0.1.0 Release: Apr 23, 2025
  • Research & Architecture, Testing: Apr 23 - Apr 27, 2025
  • Core Development: Apr 23 - Jun 7, 2025
  • Cross-Platform Testing (Windows, Linux, macOS): Jun 7 - Jun 20, 2025
  • Release v0.2.3 (latest) on Crates.io & npm: Jun 21, 2025

Gallery - 03 images

Execution

Phase 1: Research & Planning

  • Identified gaps in the Tauri ecosystem for accessing hardware info
  • Compared existing system info libraries (sysinfo, winapi, Vulkan SDK, Linux sysfs)
  • Designed API surface for consistent Rust + TS integration
  • Skills Used: Systems programming research, Rust ecosystem analysis, API design

Phase 2: Development

  • Implemented backend in Rust with sysinfo + platform-specific extensions
  • Exposed safe async bindings for Tauri invoke calls
  • Built TypeScript bindings for seamless frontend integration
  • Added Tauri v2 permissions (CPU, GPU, RAM, OS info) for security
  • Skills Used: Rust, Tauri plugin development, TypeScript bindings, systems integration

Phase 3: Testing & Release

  • Tested functionality across Windows, Linux, and macOS
  • Benchmarked overhead and optimized plugin initialization
  • Published crates.io release and npm package
  • Documented install and usage instructions in README with code examples
  • Reached 2,600+ downloads on crates.io and 600+ downloads on npm shortly after release
  • Skills Used: Cross-platform testing, packaging, open-source release management