42 lines
1.2 KiB
Markdown
42 lines
1.2 KiB
Markdown
# 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
|