Files
shark/README.md

71 lines
1.8 KiB
Markdown

# shark
Desktop music management application written in Typescript.
## Tech Stack
- [Tauri 2](https://v2.tauri.app/start/) (desktop runtime)
- [SvelteKit 2](https://svelte.dev/docs/kit/introduction) with [Svelte 5](https://svelte.dev/docs/svelte/overview) (frontend)
- TypeScript
- [Bun](https://bun.sh/) (package manager)
- Not-very-faithful Windows 98-style UI theme ([98-dark.css](https://github.com/markuryy/98-dark.css))
## Setup
### Prerequisites
- Bun installed
- Rust toolchain (for Tauri)
### Installation
```bash
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
```bash
# 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.