mirror of
https://github.com/markuryy/shark.git
synced 2025-12-12 19:51:01 +00:00
71 lines
1.8 KiB
Markdown
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. |