# shanty A modular music management application for the high seas. Shanty aims to be a better all-in-one solution for managing, tagging, organizing, and downloading music — built as a collection of standalone tools that work together seamlessly. ## Architecture Shanty is organized as a Cargo workspace. Each component is its own crate, usable both as a library and (where applicable) a standalone CLI binary. | Crate | Description | |-------|-------------| | `shanty-db` | Shared database schema and access layer | | `shanty-index` | Music file indexing and metadata extraction | | `shanty-tag` | Metadata tagging via online databases | | `shanty-org` | File organization and renaming | | `shanty-watch` | Library watchlist management | | `shanty-dl` | Music downloading (yt-dlp and more) | | `shanty-search` | Online music search | | `shanty-notify` | Notifications for new releases and events | | `shanty-playlist` | Playlist generation | | `shanty-serve` | Music serving and streaming | | `shanty-play` | Built-in playback | | `shanty-web` | Web interface backend (Actix) with Elm frontend | ## Building ```sh cargo build --workspace ``` ## Testing ```sh cargo test --workspace ``` ## License MIT