A modern, cross-platform music library manager written in Rust. Inspired by beets, reimagined for the future.
⚠️ Work in Progress - This project is under active development.
- Fast & Cross-Platform - Native Rust performance on Windows, macOS, and Linux
- Web-First - Built-in REST API and web interface
- Extensible - Lua scripting for custom plugins and workflows
- Smart Tagging - Automatic metadata from MusicBrainz, Discogs, and more
- Modern CLI - Intuitive command-line interface with progress indicators
# Build from source
cargo build --release
# Initialize a library
apollo init --path ~/Music
# Import your music
apollo import /path/to/music
# Search your library
apollo query "artist:Beatles"
# Start the web interface
apollo web --port 8337Apollo is built as a collection of focused crates:
| Crate | Description |
|---|---|
apollo-core |
Core types and business logic |
apollo-db |
SQLite database layer |
apollo-audio |
Audio file handling and metadata |
apollo-sources |
External metadata sources (MusicBrainz, etc.) |
apollo-lua |
Lua scripting support |
apollo-web |
REST API and web interface |
apollo-cli |
Command-line interface |
- Rust 1.75+ (stable)
- SQLite 3.x
- Lua 5.4 (for plugin development)
# Check all crates compile
cargo check --workspace
# Run tests
cargo test --workspace
# Build release binary
cargo build --releaseThis project enforces strict code quality:
# Format code
cargo fmt
# Run linter
cargo clippy -- -D warnings
# Run tests with coverage
cargo llvm-cov --workspaceThis project is developed with assistance from Claude Code. See:
PROMPT.md- AI development guideTASKS.md- Current task boardDECISIONS_NEEDED.md- Pending decisionsARCHITECTURE.md- Technical documentation
MIT OR Apache-2.0
- beets - The original inspiration
- MusicBrainz - Metadata database
- lofty - Audio tag library