#battery #freebsd #si-units #macos #linux #windows #linux-macos

starship-battery

笔记本电脑电池的跨平台信息

6个版本

0.9.1 2024年7月25日
0.8.3 2024年4月8日
0.8.2 2023年8月5日
0.8.1 2023年6月8日
0.7.9 2021年11月9日

#45 in 操作系统

Download history 5837/week @ 2024-05-04 4952/week @ 2024-05-11 3932/week @ 2024-05-18 3973/week @ 2024-05-25 3417/week @ 2024-06-01 3600/week @ 2024-06-08 3576/week @ 2024-06-15 2866/week @ 2024-06-22 2839/week @ 2024-06-29 2622/week @ 2024-07-06 2967/week @ 2024-07-13 3364/week @ 2024-07-20 5065/week @ 2024-07-27 3938/week @ 2024-08-03 4088/week @ 2024-08-10 3513/week @ 2024-08-17

每月 17,500 下载量
6 crates 中使用

ISC 许可证

160KB
3.5K SLoC

battery

Latest Version Latest Version Build Status Minimum rustc version ISC licensed

Rust crate提供关于笔记本电脑电池的跨平台信息。

目录

概述

battery提供对笔记本电脑电池状态的跨平台统一API。

其主要目标是封装操作系统特定的接口,覆盖所有黑客和遗留案例,并将电池信息(如充电状态、能量速率、电压和温度)作为类型值返回,必要时重新计算为SI测量单位

支持的平台

  • Linux 2.6.39+
  • MacOS 10.10+
  • iOS
  • Windows 7+
  • FreeBSD
  • DragonFlyBSD
  • NetBSD

请注意,iOS实现使用IOKit绑定,您的应用程序可能会因该原因被Apple自动拒绝。使用风险自担。

安装

作为先决条件,battery crate需要至少Rustc版本1.69或更高。

将以下行添加到Cargo.toml

[dependencies]
battery = "0.8.3"

示例

fn main() -> Result<(), battery::Error> {
    let manager = battery::Manager::new()?;

    for (idx, maybe_battery) in manager.batteries()?.enumerate() {
        let battery = maybe_battery?;
        println!("Battery #{}:", idx);
        println!("Vendor: {:?}", battery.vendor());
        println!("Model: {:?}", battery.model());
        println!("State: {:?}", battery.state());
        println!("Time to full charge: {:?}", battery.time_to_full());
        println!("");
    }

    Ok(())
}

有关更多示例,请参阅仓库中的battery/examples/文件夹

用户

这是battery crate用户的非完整列表。如果您也在使用它,请给我发消息,我将在此处添加您的项目!

starship

starship是Spaceship ZSH的最小化、强大且极具可定制性的提示符的Rust端口。
它使用battery crate在shell提示符中显示当前电池水平和状态。

以下是@matchai的说法

我真的很欣赏我们能够轻松地运行您的库!电池API是我们此项目前身的一个头疼问题 😅

还有这条推文

依赖关系

~1.1–2.7MB
~48K SLoC