KOVOL es la caja registradora digital para autónomos y pequeñas pymes españolas.
Sin suscripción, sin nube, sin dependencias externas. Tus datos en tu máquina.
Timing: Factura electrónica obligatoria en España desde 2027 (Ley Crea y Crece, Verifactu).
KOVOL compite con la libreta y el Excel. No con los SaaS de 50€/mes.
Menos es más. Implementaciones cortas y funcionales por encima de arquitecturas especulativas.
Regla base: Las clases son para estado compartido. Si se puede resolver con una función pura, se usa una función pura.
Tres capas aisladas + dos modos de ejecución:
| Capa | Descripción |
|---|---|
| 🛡️ Auth | Autenticación asimétrica con SHA-256 determinista. Roles Boss vs User. |
| 💰 Motor Bancario | Precisión matemática (rust_decimal). Depósitos, retiros, logs inmutables. |
| 👥 Clientes | CRUD en memoria + disco. Baja lógica, destrucción física. Ring Buffer de 100 eventos. |
| Modo | Binario | Puerto |
|---|---|---|
| 🖥️ CLI | kovol_rust |
— (terminal interactiva) |
| 🌐 API | server |
:3000 (REST JSON) |
Sin SQL. Tres archivos atómicos:
| Archivo | Contiene |
|---|---|
kovol_db.json |
Cartera de clientes |
kovol_state.json |
Saldo, IBAN, tarjeta monedero |
kovol_auditoria.log |
Registro inmutable de operaciones |
# CLI interactiva
cargo run
# API REST
cargo run --bin server
# Tests
cargo test # 5/5 ✅GET /api/saldo → saldo, IBAN, tarjeta
POST /api/depositar {monto} → ingreso
POST /api/retirar {monto} → retirada
GET /api/clientes → listar todos
GET /api/clientes/{id} → consultar uno
POST /api/clientes {id,nombre,empresa} → crear
PUT /api/clientes/{id} {nombre,empresa} → actualizar
DELETE /api/clientes/{id} → purgar
POST /api/clientes/{id}/inactivar → baja lógica
- CLI interactiva (Boss + User)
- API REST bancaria
- CRUD clientes vía API
- Frontend web (HTML/JS vanilla)
- Factura electrónica Verifactu
- Panel de administración
| Componente | Tecnología |
|---|---|
| Lenguaje | Rust (edition 2024) |
| API | Axum 0.8 + Tokio |
| CLI | Crossterm |
| Precisión | rust_decimal |
| Serialización | Serde + Serde JSON |
| Auth | SHA-256 (implementación propia) |