Music Manager capstone project

Hello everyone!

I'd appreciate a code review of my project Music Manager - a modular and fault-tolerant system for media library management automation, built as a capstone project for the RustCamp UA certification. :face_savoring_food:

Repo: music-manager
PR: Core features #1

What it does

The system uses an event-driven approach to automate audio file processing (tagging, fingerprinting, etc.). It’s split into a Cargo workspace with the following components:

  • core_lib - Shared backbone. Defines actor protocols (messages/traits), domain models, and the Lua configuration layer.
  • core_bin - Entry point. Orchestrates the actor system, manages global state (DB, Lua VM), and spawns the Coordinator.
  • plugins/metadata_restorer - Tagging plugin. Performs AcoustID fingerprinting, fetches MusicBrainz tags, and handles manual conflict resolution.
  • services/watcher - Ingestion service. Monitors the filesystem for new files using the notify crate and triggers the processing pipeline.

Technical Highlights

  • Actor Model: All components communicate via asynchronous, non-blocking messages using the Kameo framework.
  • Dynamic Config: A context-aware configuration system where Lua scripts can define complex pipeline behaviors.
  • Fault Tolerance: Robust error handling to ensure no track "hangs" in the pipeline even if a plugin fails.

There are also architecture diagrams in the README.

Thanks in advance!

It would be valuable to see the target audience of your project. Currently I use the music barrel I wrote a couple decades ago. It's outdated, although I listen to, for example music of Cuba using it now. Why should I jump using your project? Mine is Java based, so it's safe too. It also does music files scanning and adjusting tags. I wrote it actually for iPod initially, and then separated as a standalone project with multi platforms capabilities, as Android, Windows, Linux, Mac and free BSD. Since I do Rust development as a hobby project, I also interested migrating it to Rust, maybe using your work.