One binary
No JVM, no runtime: the whole server is one Rust executable for Linux, macOS, and Windows. Docker image included.
KMServer
A full-featured Komga drop-in replacement in Rust: the same formats, API and database, plus additional capabilities — in one self-contained binary with no JVM and a small memory footprint.
docker run -d \
--name=kmrs \
--user 1000:1000 \
-p 25600:25600 \
--mount type=bind,source=/path/to/config,target=/config \
--mount type=bind,source=/path/to/data,target=/data \
--restart unless-stopped \
ghcr.io/kmworks/kmrsA live KMServer with the bundled web UI and a public-domain library of English and Japanese comics and ebooks. Everything resets daily.
demo@kmworks.datekmworks-demoThe Komga experience, rebuilt in Rust: one self-contained binary instead of a JVM runtime, and a footprint that stays small.
No JVM, no runtime: the whole server is one Rust executable for Linux, macOS, and Windows. Docker image included.
A 16 MiB SQLite page-cache budget per database, capped allocator arenas, and bounded container caches keep memory predictable and page serving efficient. Enhancements
The kmweb UI is embedded in the binary, so your library works in a browser out of the box.
Same port, same mounts, same environment variables, same API.
REST, OPDS v1.2/v2, SSE, Kobo and KOReader sync. A differential harness compares about 105 endpoints against a live Java Komga instance.
python3 tests/diff/diff.py \
--java-jar komga.jar \
--rust-bin ./kmrsSame port (25600), same /config and /data mounts, same KOMGA_* environment variables. Your existing setup carries over.
Point KMServer at an existing Komga data directory and it upgrades database.sqlite in place with byte-for-byte Flyway migrations. The Java version can still open libraries written by KMServer, so you can switch back at any time.
Your files stay where they are.
Upgraded in place, readable by both servers.
Your clients reconnect without changes.
One docker run, or a single binary from the releases page.
Point /config at your existing Komga data. KMServer upgrades it in place.
The bundled web UI, KMReader, KOReader, Kobo, or any OPDS client.
docker run -d \
--name=kmrs \
--user 1000:1000 \
-p 25600:25600 \
--mount type=bind,source=/path/to/config,target=/config \
--mount type=bind,source=/path/to/data,target=/data \
--restart unless-stopped \
ghcr.io/kmworks/kmrsservices:
kmrs:
image: ghcr.io/kmworks/kmrs:latest
container_name: kmrs
user: "1000:1000"
ports:
- "25600:25600"
volumes:
- ./config:/config
- ./data:/data
restart: unless-stopped# grab the archive for your platform from the releases page:
# https://github.com/kmworks/kmrs/releases/latest
./kmrs # serves on http://localhost:25600Capabilities the Java version does not have.
Simplified and traditional Chinese match each other, and CJK unigrams find titles mid-run. Search
简繁Save any search as a live list: the filter re-evaluates for whoever is looking, with share scopes and generated mosaic covers. Smart lists
Per-user totals, day-by-day activity, and reading streaks, computed on the server. Reading stats
The full lists live in the docs: Enhancements, Compatibility, Known limitations, Development.
Compatible with the Komga API and its reader ecosystem.