SDK, para desarrollo sobre informacion de la batería en Windows y Linux; en Rust con interfaz CLI, GUI y API REST.
- Monitoreo en tiempo real: Seguimiento continuo del estado de la batería del sistema
- Múltiples interfaces: CLI, GUI y servidor API REST
- Histórico de datos: Almacenamiento SQLite de métricas de batería
- Estadísticas avanzadas: Análisis de consumo y tendencias
- Multiplataforma: Soporte para Windows y Linux
- Sin dependencias externas: Binario estático auto-contenido
- Porcentaje de carga
- Estado de salud (health)
- Estado de carga (Charging/Discharging/Full)
- Ciclos de carga
- Voltaje actual
- Corriente actual
- Potencia instantánea
- Tecnología de batería
- Fabricante y modelo
- Número de serie
- Capacidad actual y de diseño
- Tiempo estimado hasta vacío/lleno
- Porcentaje de carga
- Estado de salud (health)
- Estado de carga (Charging/Discharging/Idle)
- Potencia instantánea
- Capacidades
- Tiempo estimado hasta vacío/lleno
- Rust 1.70 o superior
- Cargo
- Acceso a
/sys/class/power_supply/
- Windows 10 o superior
git clone https://github.com/DevnisG/Rusttery.git
cd Rusttery
cargo build --releaseEl binario compilado estará disponible en target/release/rusttery
Modo por defecto. Muestra todos los datos de batería en una ventana:
cargo runo
./target/release/rustteryMonitoreo continuo en terminal con actualización cada 3 segundos:
cargo run -- --cliInicia un servidor HTTP en el puerto 3000:
cargo run -- --apiImprime los datos actuales en formato JSON y finaliza:
cargo run -- --jsonEl servidor API se ejecuta en http://localhost:3000 y provee los siguientes endpoints:
Retorna porcentaje de carga y estado de salud.
Respuesta:
{
"status": "ok",
"data": {
"percent": 85,
"health": 92
}
}Retorna únicamente el porcentaje de carga actual.
Respuesta:
{
"status": "ok",
"data": {
"percent": 85
}
}Retorna únicamente el estado de salud de la batería.
Respuesta:
{
"status": "ok",
"data": {
"health": 92
}
}Retorna toda la información disponible de la batería.
Respuesta:
{
"status": "ok",
"data": {
"percent": 85,
"health": 92,
"status": "Discharging",
"cycle_count": 245,
"voltage_now": 12.6,
"current_now": 1.8,
"power_now": 22.68,
"technology": "Li-ion",
"manufacturer": "LGC",
"model": "Battery Model",
"serial_number": "12345",
"capacity_full": 45000,
"capacity_design": 50000,
"time_to_empty": 120,
"time_to_full": null
}
}Retorna el historial de mediciones de batería.
Parámetros:
hours(opcional): Número de horas hacia atrás. Por defecto: 24
Respuesta:
{
"status": "ok",
"data": {
"hours": 24,
"records": [
{
"timestamp": 1737331200,
"percent": 85,
"health": 92,
"status": "Discharging",
}
]
}
}Retorna estadísticas agregadas del período especificado.
Parámetros:
hours(opcional): Número de horas hacia atrás. Por defecto: 24
Respuesta:
{
"status": "ok",
"data": {
"hours": 24,
"statistics": {
"avg_percent": 78.5,
"min_percent": 45,
"max_percent": 100,
"avg_power": 15.3,
"total_records": 288
}
}
}Los datos se almacenan automáticamente en SQLite cuando se ejecuta el CLI o el servidor API.
Ubicación:
- Linux:
~/.local/share/rusttery/battery_history.db - Windows:
C:\Users\<Usuario>\AppData\Local\rusttery\battery_history.db
Retención: Los registros más antiguos de 30 días se eliminan automáticamente al iniciar la aplicación.
src/
├── core/ # Lógica de lectura de batería
├── api/ # Servidor HTTP REST
├── cli/ # Interfaz de línea de comandos
├── gui/ # Interfaz gráfica
├── database/ # Manejo de SQLite
└── main.rs # Punto de entrada
cargo build --releasecargo fmtcargo clippy| Plataforma | Estado |
|---|---|
| Linux | Completo |
| Windows | Completo |
| macOS | No soportado |
Las contribuciones son bienvenidas. Por favor:
- Fork el repositorio
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Añade nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
MIT License - ver el archivo LICENSE para más detalles.
DevnisG - GitHub