7 unstable releases (3 breaking)
0.10.0 | Sep 6, 2024 |
---|---|
0.9.1 | Jul 25, 2024 |
0.8.3 | Apr 8, 2024 |
0.8.2 | Aug 5, 2023 |
0.7.9 | Nov 9, 2021 |
#49 in Operating systems
17,370 downloads per month
Used in 7 crates
(6 directly)
155KB
3.5K
SLoC
battery
Rust crate providing cross-platform information about the notebook batteries.
Table of contents
- Overview
- Supported platforms
- Install
- Examples
- FFI bindings
- Users
- License
- Donations
- Contributors
- Backers
- Sponsors
Overview
battery
provides a cross-platform unified API to a notebook batteries state.
Its main goal is to wrap the OS-specific interfaces, cover all the hacks and legacy cases and get the batteries information (such as state of charge, energy rate, voltage and temperature) as a typed values, recalculated as necessary to be returned as a SI measurement units.
Supported platforms
- Linux 2.6.39+
- MacOS 10.10+
- iOS
- Windows 7+
- FreeBSD
- DragonFlyBSD
- NetBSD
Do note that iOS implementation uses IOKit bindings, your application might be automatically rejected by Apple based on that fact. Use it on your own risk.
Install
As a prerequisite, battery
crate requires at least Rustc version 1.69 or greater.
Add the following line into a Cargo.toml
:
[dependencies]
battery = "0.8.3"
Examples
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(())
}
See the battery/examples/
folder in the repository
for additional examples.
Users
This an incomplete list of the battery
crate users. If you are using it too,
send me a message and I'll add your project here!
starship
starship
is a Rust port of the minimalistic, powerful,
and extremely customizable prompt Spaceship ZSH.
It is using the battery
crate to show the the current battery level and status in a shell prompt.
Here is what @matchai says:
I really appreciate how easily we were able to get your library up and running! Battery APIs were a headache for us in predecessors of this project 😅
And there is this tweet also!
Dependencies
~1–10MB
~105K SLoC