Modern music player written in Rust using GPUI with a focus on design and performance
Find a file
2025-11-27 04:22:24 -07:00
.github/workflows ci: fix slash direction 2025-11-17 23:05:05 -07:00
assets feat: add remove from playlist button 2025-11-02 04:39:54 -07:00
docs chore: update docs 2025-11-03 01:08:24 -07:00
migrations feat: recognize year-only dates 2025-10-22 15:12:32 -07:00
package/inno chore: prepare CI for release (#69) 2025-11-17 22:29:11 -07:00
queries fix: workaround windows checksum wonkiness 2025-11-16 23:22:03 -07:00
res chore: remove old icon files 2025-11-17 18:53:55 -07:00
src fix(last.fm): ensure warning message is shown 2025-11-27 04:22:24 -07:00
.envrc build(nix): init flake for all default platforms 2025-02-19 14:16:48 -07:00
.gitattributes chore: fix lf differing 2025-11-16 22:36:42 -07:00
.gitignore chore: add .cargo/ to gitignore 2025-11-20 20:20:07 -07:00
build.rs build: reduce spurious rebuilds due to build script 2025-11-27 04:22:24 -07:00
Cargo.lock chore(deps): cargo update 2025-11-27 04:22:24 -07:00
Cargo.toml style: format Cargo.toml 2025-11-27 04:22:24 -07:00
Contemporary.toml chore: prepare CI for release (#69) 2025-11-17 22:29:11 -07:00
CONTRIBUTING.md chore: add contributing.md 2025-11-04 16:25:35 -07:00
flake.lock chore(nix): update flake.lock 2025-11-27 04:22:24 -07:00
flake.nix chore(nix): add cg-clif to devShell 2025-11-27 04:22:24 -07:00
LICENSE chore: create LICENSE 2024-10-26 23:38:28 -07:00
README.md feat: opus decoding + improved AAC 2025-11-21 13:53:50 -07:00
rust-toolchain.toml feat: basic ui setup 2024-07-11 23:49:54 -07:00

Hummingbird

screenshot

Hummingbird is a modern music player written in Rust using GPUI, designed to be performant and lightweight while maximizing extensibility and maintaining a high design standard.

Features

  • Fully native application with no web component
  • FLAC, MP3, OGG Vorbis, Opus, AAC and WAV playback
  • Linux, macOS and Windows support
  • SQLite-backed library
  • Theming with hot reload
  • Scrobbling (last.fm) support
  • Fuzzy-find album search (press Ctrl + F)
  • Desktop integration
  • Playlists

Planned Features

  • WASM Extension support:
    • Codecs
    • Scrobble services
    • Metadata services
  • Advanced search
  • ReplayGain
  • Lyrics support
  • Improved library management

Usage

Stable Builds

Windows, macOS and Linux AppImage

Binaries for these platforms are officially available for 64-bit ARM and Intel architectures. See the latest release for downloads.

Fedora

Fedora users can install Hummingbird using the william341/hummingbird COPR:

sudo dnf copr enable william341/hummingbird
sudo dnf install hummingbird

Arch

Arch users can install Hummingbird using the hummingbird-player AUR package:

paru -S hummingbird-player

NixOS

A flake is available for NixOS users. Work towards upstreaming Hummingbird into nixpkgs is currently ongoing.

Unstable Builds

The latest commit is built using Github Actions and uploaded to the latest tag automatically. Windows installers aren't available for unstable builds.

Building

For more detailed instructions, see the Building documentation.

# install relevant devel packages for xcb-common, x11, wayland, openssl, and pulseaudio if on Linux
git clone https://github.com/143mailliw/hummingbird
cd hummingbird

# last.fm api keys must be set in the environment for scrobbling to work
# these can be obtained from https://www.last.fm/api/account/create
# you can also set these in a .env file in the root of the project
#
# Hummingbird will still build without these keys, but scrobbling will be disabled
export LASTFM_API_KEY="your key"
export LASTFM_API_SECRET="your secret"

# debug mode will result in noticable slowdown in some cases
cargo build --release

Contributing

See CONTRIBUTING.md.