tauri-plugin-machine-uid

Crates.iotauri-plugin-machine-uid
lib.rstauri-plugin-machine-uid
version0.1.2
created_at2025-03-24 09:37:09.943346+00
updated_at2025-08-06 14:47:28.482174+00
descriptionA Tauri plugin for retrieving machine UID
homepagehttps://github.com/SkipperNDT/tauri-plugin-machine-uid
repositoryhttps://github.com/SkipperNDT/tauri-plugin-machine-uid
max_upload_size
id1603611
size157,572
Florian Stasse (FlorianStasse)

documentation

https://docs.rs/tauri-plugin-machine-uid

README

Tauri Plugin machine-uid

License

A Tauri plugin that provides access to unique device identifiers across different platforms.

Installation

Add the following to your Cargo.toml:

[dependencies]
tauri-plugin-machine-uid = "0.1.2"

Add the following typescript bindings if you want:

yarn add @skipperndt/plugin-machine-uid

Usage

First, register the plugin in your Tauri application:

fn main() {
    tauri::Builder::default()
        .plugin(tauri_plugin_machine_uid::init())
        .run(tauri::generate_context!())
        .expect("error while running tauri application");
}

Then you can use it in your application (if you installed the typescript bindings):

import { commands } from '@skipperndt/plugin-machine-uid';

// Get the unique device identifier
const result = await commands.getMachineUid();
if (result.status === "ok") {
    console.log(result.data.id); // e.g. "550e8400-e29b-41d4-a716-446655440000"
}

The getMachineUid() function returns a Result type with the following structure:

type Result<T, E> = 
    | { status: "ok"; data: { id: string | null } }
    | { status: "error"; error: E };

If you use Rust, import the MachineUidExt trait:

use tauri_plugin_machine_uid::MachineUidExt;

let id = app_handle.machine_uid().get_machine_uid().unwrap().id.unwrap();

Platform Support

  • Windows: Uses WMI to get the system UUID
  • macOS: Uses IOKit to get the system UUID
  • Linux: Uses D-Bus to get the system machine ID
  • iOS: Uses UIDevice's identifierForVendor
  • Android: Uses Settings.Secure.ANDROID_ID

Contributing

PRs are welcome! Please feel free to submit issues and pull requests.

License

MIT © Florian Stasse

Commit count: 11

cargo fmt