KOReader Sync Server in Rust

KOReader Sync Server in Rust

Viele Fans des papierlosen Lesens schwören auf ihn: Den KOReader. Dabei handelt es sich um eine Lesesoftware, die u. a. auf vielen eInk- und Android-Geräten lauffähig ist. Neulinge werden von der schieren Funktionsvielfalt beinahe erschlagen. Mit viel Liebe zum Detail lassen sich quasi alle Aspekte des digitalen Lesens nach den eigenen Vorlieben konfigurieren. Durch Plugins wird die Funktionsvielfalt noch erweitert.

Beispielhaft sei hier nur eine Einstellung genannt: Der Automatische Wärme- und Nachtmodus. Es ist ja schon toll, dass man über den KOReader die Helligkeit und die „Wärme” (Blaulichtreduktion) der Beleuchtung einstellen kann. Doch damit nicht genug! Wenn man einmal den Standort samt Höhenmeter eingestellt hat, lässt sich die Lichtwäme maximal ausgefuchst anhand von astronomischer, nautischer und bürgerlicher Morgen- bzw. Abenddämmerung festlegen. Das klingt zwar nerdig, ist aber tatsächlich höchst sinnvoll und nützlich.

Aktive Lichtwärme-Einstellungen

Ich selbst war zwar bisher kein ausgesprochener KOReader-Nutzer, doch haben mich einige Unzulänglichkeiten der herstellerseitigen Lesesoftware nun doch dazu bewogen, die alternative Lesesoftware zu installieren. Ein schönes Feature dabei ist auch die Möglichkeit, den Lesestand der Bücher mit einem Sync-Server abzugleichen. Neben dem „Standard-Server“ kann man auch einen beliebig anderen verwenden, sofern dieser API-kompatibel ist. Es ist also möglich, selbst einen Sync-Server zu betreiben, so dass die Daten nicht irgendwohin wandern, sondern unter der eigenen Kontrolle bleiben.

Hierzu kann man den offiziellen Sync-Server (koreader-sync-server) installieren. Da die Installationsanleitung jedoch nur die Verwendung von Docker erläutert, und ich Docker nicht sonderlich mag, habe ich spaßhalber versucht, einen eigenen Syncserver zu implementieren. Da der Sync-Server nicht viel macht außer auf Zuruf ein paar Daten abzulegen oder abzurufen, war der Aufwand nicht sonderlich groß. Herausgekommen ist ein kosyncrs, ein simpler („quick and dirty“) Sync-Server in Rust, der das Axum-Framework verwendet.

Wer möchte, kann die Software gerne einmal ausprobieren. Im Moment läuft auf https://kosync.rustysoft.de eine Testinstanz. Diese kann gerne verwendet werden. Ich wäre an Rückmeldungen sehr interessiert. Man sollte jedoch einkalkulieren, dass bei einer Testinstanz die Daten auch mal weg sein können.