#tauri-plugin #system-info #plugin-system #retrieving #api

sys tauri-plugin-system-info

用于获取系统信息的 Tauri 插件

10 个版本 (5 个稳定版本)

2.0.2 2024年7月5日
2.0.1 2024年6月20日
1.0.2 2024年6月20日
0.2.0 2024年1月31日
0.1.0 2023年8月16日

#194操作系统

每月40次下载

MIT 许可证

38KB
970

Tauri Plugin system-info

文档网站:https://huakunshen.github.io/tauri-plugin-system-info

这是一个用于读取系统信息的 Tauri 插件。

安装

如果您从 npm 和 crates.io 包注册表中安装,请确保这两个包的版本相同,否则 API 可能不匹配。

对于 Tauri v1 应用程序,使用版本 1.x,对于 Tauri v2 应用程序,使用版本 2.x。(这适用于 npm 和 crates.io 包)

Rust 安装

cargo add tauri-plugin-system-infosrc-tauri 中添加包。

或者将以下内容添加到您的 Cargo.toml 以使用最新未发布的版本(不推荐)。

tauri-plugin-system-info = { git = "https://github.com/HuakunShen/tauri-plugin-system-info", branch = "v1" } # use v2 branch for Tauri v2 plugin

NPM 安装

运行以下命令安装 JavaScript/TypeScript API 包。

npm i tauri-plugin-system-info-api
# npm add https://github.com/HuakunShen/tauri-plugin-system-info # or this for latest unpublished version (not recommended)

main.rs 中,将以下内容添加到您的 tauri::Builder

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

支持的信息

  • CPU
  • 网络
  • 进程
  • 内存
  • 主机名
  • 内核版本
  • 操作系统版本
  • 电池

使用的第三方库

API

TypeScript

所有 TypeScript API 都可以在 api.ts 中找到。

每个 API 的返回类型已添加。对象结构可以在 type.ts 中找到。

使用了 Valibot 来定义类型模式和推断 TypeScript 类型。您可以从 npm 包中导入导出的类型。

导出的 Valibot 模式可以用于解析数据并确保从 Rust API 返回的数据与在模式中定义的预期结构匹配。

import {
  allSysInfo,
  memoryInfo,
  staticInfo,
  cpuInfo,
  AllSystemInfo,
  StaticInfo,
  MemoryInfo,
  CpuInfo,
  batteries,
  Batteries,
} from "tauri-plugin-system-info-api";

console.log(AllSystemInfo.parse(await allSysInfo()));
console.log(MemoryInfo.parse(await memoryInfo()));
console.log(StaticInfo.parse(await staticInfo()));
console.log(CpuInfo.parse(await cpuInfo()));
console.log(Batteries.parse(await batteries()));

Rust

Rust 中的 API 函数全部导出,因此您也可以构建自己的命令。

use tauri_plugin_system_info::utils::{SysInfo, SysInfoState};

SysInfo 是一个API结构体,可以用来访问所有信息。它类似于 sysinfo API和其他crate的包装器。这样做的原因是,一些第三方库中的结构体不能被克隆或序列化,因此不能发送到前端。

我使用自定义代码聚合所有API,进行结构转换和序列化。

用法

请参阅使用 SvelteKit 编写的示例 SvelteKit Example

依赖关系

~19–59MB
~1M SLoC