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次下载
38KB
970 行
Tauri Plugin system-info
文档网站:https://huakunshen.github.io/tauri-plugin-system-info
这是一个用于读取系统信息的 Tauri 插件。
- Rust 包:https://crates.io/crates/tauri-plugin-system-info
- TypeScript API:https://npmjs.net.cn/package/tauri-plugin-system-info-api
安装
如果您从 npm 和 crates.io 包注册表中安装,请确保这两个包的版本相同,否则 API 可能不匹配。
对于 Tauri v1 应用程序,使用版本 1.x,对于 Tauri v2 应用程序,使用版本 2.x。(这适用于 npm 和 crates.io 包)
Rust 安装
cargo add tauri-plugin-system-info
在 src-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