Skip to Main Content
Rmptui - MPD-Client in RustBack to Top

Rmptui - MPD-Client in Rust

By Krolyxon
2 minutes

Dieser Blog wurde vollständig mit Deepl übersetzt.

Wie alles begann

Das ist etwas, woran ich in den letzten Wochen gearbeitet habe. rmptui ist ein TUI-Musikplayer, der mit MPD (Music Player Daemon) zusammenarbeitet.

Ich hatte bereits im Mai 2023 beschlossen, einen Musikplayer in Rust zu entwickeln, bin aber nie dazu gekommen. Vor zwei Monaten habe ich dann tatsächlich damit begonnen, weil ich Rust lernen wollte.

rmptui-v0.1.4
rmptui-v0.1.4

Die obigen Bilder zeigen die Registerkarte „Verzeichnisbrowser“ von rmptui. Es gibt insgesamt drei Registerkarten:

  1. Warteschlange – Zeigt die aktuelle Wiedergabeliste an.
  2. Verzeichnisbrowser – Ermöglicht Ihnen, Ihre Musikbibliothek zu durchsuchen.
  3. Wiedergabelisten – Zeigt Ihre Wiedergabelisten an.

Weitere Informationen zu Keymaps finden Sie unter Github Readme.

Verwendete Crates

rmptui verwendet die Crate rust-mpd für die Interaktion mit Music Player Daemon. Diese Crate wird offenbar nicht mehr gepflegt, viele der Befehle sind mehrdeutig, und die Arbeit damit war relativ mühsam. Der bessere Ansatz wäre, einfach TCP-Sockets zu verwenden, aber ich habe trotzdem einen Weg gefunden, mit dieser Kiste zu arbeiten.

Für die TUI (Terminal User Interface) wird ratatui verwendet, eine ziemlich leichtgewichtige und intuitive Bibliothek zum Erstellen von TUIs.

Aktueller Stand von Rmptui (02.06.2024)

Es befindet sich noch in einer frühen Entwicklungsphase, in der mit vielen Fehlern zu rechnen ist. Ich bitte daher alle, Fehler auf Github Issues zu melden, damit ich sie beheben kann. Derzeit liegt die Version 0.1.4 vor.

Zukunftspläne

Derzeit ist rmptui nicht asynchron und single-threaded, was für einen Musikplayer, der mit einem Server interagiert, Tastenkombinationen verarbeitet und gleichzeitig TUI rendert, wirklich schlecht ist. Ich plane außerdem, in Zukunft die Unterstützung für das Abrufen von Songtexten hinzuzufügen. Außerdem ist der Code ein riesiges Durcheinander, daher hoffe ich, auch das zu organisieren.

Zu guter Letzt möchte ich eine stabile Version 1.0.0 veröffentlichen und sie auf crates.io veröffentlichen.