Markury 8391897f54 feat(library): add sqlite-backed library sync and stats
BREAKING CHANGE: Library data is now stored in a database and will require an initial sync. Existing in-memory library data is no longer used.
2025-10-01 20:02:57 -04:00
2025-09-30 11:19:56 -04:00
2025-10-01 19:27:41 -04:00
2025-09-30 11:19:56 -04:00
2025-09-30 11:19:56 -04:00
2025-09-30 11:19:56 -04:00

shark

Desktop music management application written in Typescript.

Tech Stack

Setup

Prerequisites

  • Bun installed
  • Rust toolchain (for Tauri)

Installation

bun install

Configuration

  1. Run the app: bun run tauri dev
  2. Go to Settings and configure:
    • Music folder (where downloads will be saved)
    • Playlists folder (for .m3u8 files)
    • Download settings (format, concurrency, overwrite behavior)

Development

# Run dev server (hot reload)
bun run tauri dev

# Build for production
bun run tauri build

# Type checking
bun run check

How It Works

Architecture

src/
├── routes/              # SvelteKit pages
│   ├── library/         # Local library view
│   ├── services/        # Downloads and metadata services UI
│   ├── downloads/       # Download queue UI
│   └── settings/        # App settings
├── lib/
│   ├── services/        # Downloads and metadata services
│   ├── library/         # Library scanner, album/playlist loaders
│   ├── stores/          # Svelte stores (settings, auth, queue)
│   └── types/           # TypeScript type definitions
src-tauri/
├── capabilities/        # Tauri security permissions
└── tauri.conf.json      # Tauri configuration

License

This repo has been made source available. It is not licensed under a single open source license. Check upstream libraries for license details.

Description
No description provided
Readme 2.2 MiB
Languages
TypeScript 46.9%
Svelte 44%
Rust 8.6%
JavaScript 0.3%