[READ-ONLY] Mirror of https://github.com/probablykasper/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
0

Configure Feed

Select the types of activity you want to include in your feed.

Svelte 41.0%
Rust 29.2%
TypeScript 25.2%
JavaScript 1.2%
Kotlin 1.2%
Shell 1.1%
Batchfile 0.5%
HTML 0.3%
CSS 0.2%
Other 0.1%
821 9 50

Clone this repository

https://tangled.org/kasper.space/ferrum https://tangled.org/did:plc:7uokdtlmjb4wzvgmidfp6d33
git@tangled.org:kasper.space/ferrum git@tangled.org:did:plc:7uokdtlmjb4wzvgmidfp6d33

For self-hosted knots, clone URLs may differ based on your setup.



README.md

Ferrum

Music library and player
Download for Mac, Linux, Windows or Android


https://github.com/user-attachments/assets/b73cdcf8-8abb-4d43-a5eb-582cad7e3075

Features#

  • Playlists & folders
  • Filtering
  • Queue
  • Metadata editing
  • Fast. Navigation, sorting & filtering should be instant even for libraries with 100 000 tracks
  • Quick playlist navigation with CmdK or CtrlK

Android#

The Android app is not useful yet, unless you just want you browse your library. There's no playback or syncing. You have to manually copy over your Library.json file.

Get it on Obtainium

Dev instructions#

Get started#

  1. Install Node.js
  2. Install Rust
  3. Run npm install

Structure#

App (Electron)

  • Source: src/electron.js and src/electron/
  • Build output: build/app/

Web (the frontend)

  • Source code: napi and src/
  • Build output: build/web/

Napi (the native Rust backend)

  • Source code: src-native/
  • Build output: ferrum-addon/addon.node

Commands#

  • npm run dev: Start app in dev mode
  • npm run dev-release: Start app in dev mode (optimized)
  • npm run build: Build
  • npm run lint: Lint
  • npm run format: Format

Publish new version#

  1. Run npm run check
  2. Update CHANGELOG.md
  3. Run npm version --no-git-tag-version <version> to bump the version number
  4. Create a git tag in the format v#.#.#
  5. Add release notes to the generated GitHub release and publish it