Ctrl K
ComunidadGuías…
GITHUB · ANALIZADO

kmrs

kmrs es una reescritura de Komga en Rust con compatibilidad API y datos drop-in, eliminando la dependencia de JVM. Incluye UI web (kmweb) en Docker y ofrece mejoras de búsqueda CJK. Compatible con Komga 1.27.0, usa Flyway para migraciones idénticas y tiene pruebas diferenciales contra Java.

Ficha actualizada 22 sept 2026, 14:41 · upstream 22 sept 2026, 14:35 · release v0.8.4

Ver códigoProblemas y ayudaRepositorio ↗
00

Qué es kmrs

Descripción editorial construida a partir del repositorio, su documentación y sus señales de mantenimiento.

kmrs es una reescritura completa del servidor de cómics/manga Komga en Rust, diseñada como sustituto drop-in que mantiene la compatibilidad con el formato de datos y comportamiento de API de la versión original en Java. Elimina la necesidad de JVM, ofreciendo un binario estático único que puede ejecutarse directamente o empaquetado en imágenes Docker multiplataforma (linux/amd64, linux/arm64). La imagen oficial incluye kmweb, una interfaz web React servida por defecto en el puerto 25600, mientras que el binario standalone requiere un cliente compatible como KMReader o KOReader.

La implementación mantiene compatibilidad a nivel de datos, abriendo y actualizando directorios existentes de Komga in situ (database.sqlite, tasks.sqlite), permitiendo incluso que la versión Java lea bibliotecas escritas por kmrs. La API REST, OPDS v1.2/v2, SSE, sincronización Kobo y KOReader coinciden en endpoints, DTOs, paginación y autenticación con la versión Java original. Se verificó byte-a-byte contra Komga 1.27.0 mediante pruebas diferenciales de ~105 endpoints y migraciones Flyway idénticas.

kmrs introduce mejoras no presentes en Komga Java, como búsqueda simplificada entre chino tradicional/simplificado y unigramas de límites CJK (ej: `3月` coincide con `3月的狮子`). La arquitectura modular incluye crates para modelo de dominio, base de datos con migraciones Flyway compatibles, pipeline de medios, índice Tantivy y capa HTTP con axum. El código fuente permite perfiles de memoria con jemalloc y herramientas de análisis como jeprof.

CASOS DE USO
  • Migrar de Komga Java a Rust sin perder datos ni configuración
  • Autoalojar servidor de cómics/manga en entornos sin JVM (Rust-only)
  • Usar kmweb como UI web integrada en Docker para gestión de biblioteca
  • Sincronizar progreso de lectura con KOReader o Kobo desde kmrs
  • Implementar búsqueda avanzada CJK en bibliotecas multilingües
PUNTOS DESTACADOS
  • Compatibilidad API y datos drop-in con Komga 1.27.0 (mismos endpoints, DTOs, autenticación)
  • Migraciones Flyway idénticas a nivel de bytes para compatibilidad con Java
  • Mejoras de búsqueda CJK (tradicional/simplificado) no presentes en Komga Java
  • Imagen Docker multiplataforma con kmweb integrado y libpdfium incluido
  • Perfilado de memoria con jemalloc y jeprof para análisis de rendimiento
PRECAUCIONES
  • No decodifica JXL/HEIF/JPEG2000 (solo lectura, falla en conversión)
  • PDF requiere libpdfium externo (no incluido en binario standalone)
  • JPEG no byte-identico a ImageIO (afecta comparaciones de hashes)
  • Lucene fuzzy (~) y phrase-slop (~N) no soportados
  • BCP47 aliases obsoletos no normalizados para bibliotecas pre-2023-08
01

Perfil de infraestructura

Estimación inicial derivada del repositorio y de los servicios detectados.

CPU2 vCPUrecomendación inicial
MEMORIA2 GBRAM estimada
DISCO10 GBalmacenamiento base
COMPLEJIDADmediumnivel de operación
02

Despliegue detectado

Qué señales reales de instalación hemos encontrado.

Docker detectado

Usar imagen Docker `ghcr.io/kmworks/kmrs` con mounts `/config` y `/data`. Para binario standalone, usar `cargo build --release -p komga-server`. Port 25600. Desactivar UI web con `KOMGA_WEBUI_DIR=` vacío. PDF requiere libpdfium en `KOMGA_PDFIUM_PATH`. Verificar compatibilidad con Komga 1.27.0 para migraciones.

✓Dockerfile
—Compose
—One-click
03

Stack y dependencias

Componentes inferidos a partir de manifests, configuración y documentación.

FRAMEWORKS
Next.jsReactRust
SERVICIOS
No detectados
BASES DE DATOS
No detectadas
PUERTOS
25600
05

Puede sustituir a

Relaciones detectadas por el análisis del repositorio y su categoría.

06

Experiencia real de la comunidad

Ayuda a contrastar la estimación automática con instalaciones reales.

Todavía no hay datos comunitarios para este proyecto.