lyrid 0.2.0

A music universe: a canonical sky of artists and genres you explore through real listening
<p align="center">
  <img src="https://raw.githubusercontent.com/lacodda/lyrid/main/assets/banner.svg" alt="lyrid — a music universe" width="720">
</p>

# lyrid

> A music universe: a canonical sky of artists and genres you explore through real listening.

**lyrid** turns the music world into a night sky. Every artist is a star, every genre a nebula, similarity forms the routes between them — one canonical map for everyone, with a personal fog of war over it. You light up your own sky by actually listening: previews are scans, full listens are landings, and your scrobbles fuel the journey.

Named after the Lyrids — the meteor shower radiating from Lyra, the lyre of Orpheus: music falling from the sky as stars.

## Two modes

- **Exploration** — fog of war, a starship with fuel, light as currency, quests and hidden treasures. Chosen once, played for years.
- **Creative** — the whole sky open from the first minute: a daily instrument for studying music.

## Built on open data

The universe is assembled locally from open dumps and datasets — MusicBrainz, ListenBrainz, Discogs, Wikidata, Wikipedia, AcousticBrainz — with similarity and the sky layout computed by lyrid itself. Listening goes through official previews and embeds; scrobbling connects via ListenBrainz.

## Status

Pre-alpha. The stars are in: a MusicBrainz full export imports into the canonical schema — ~3M artists with their countries, years, release groups and URL relationships — alongside the axum server, the SPA shell and the documentation site. Similarity, the sky layout and the renderer come next. Watch this repository.

## Development

Requires Rust (see `rust-version` in `Cargo.toml`), Node LTS with pnpm, and Docker for the development database.

```sh
docker compose up -d db          # PostgreSQL on :5432
cp .env.example .env             # DATABASE_URL points at it out of the box
cargo run -- serve               # the API on :8080; /health reports the database

# Fill the universe from a MusicBrainz full export (~7 GB, downloaded once):
cargo run -- import musicbrainz --dump ./mbdump.tar.bz2

cd web && pnpm install && pnpm dev        # the SPA
cd docs/site && pnpm install && pnpm dev  # the documentation site
```

## Documentation

[lacodda.github.io/lyrid](https://lacodda.github.io/lyrid) — guides, reference, and the architecture decision records.

## License

[MIT](https://github.com/lacodda/lyrid/blob/main/LICENSE)