Modern music player written in Rust using GPUI with a focus on design and performance
  • Rust 98.6%
  • Shell 0.6%
  • Nix 0.3%
  • PLpgSQL 0.2%
  • PowerShell 0.1%
  • Other 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
143mailliw f65c84707b feat: swap out forge url in upload-release script (#423)
## Summary
<!-- Briefly describe the changes in this PR -->

## Changes
<!-- What specific changes were made? -->

## Testing
<!-- How did you test these changes? -->

## Checklist
- [ ] No new warnings or clippy lints introduced - if so, explain why
- [ ] Code works on all supported platforms (Linux, macOS, Windows) - tested on available platforms
- [ ] Documentation added/updated where needed
- [ ] If using generative AI assistance, disclosure is provided (co-authored-by tag or PR description) - see [here](CONTRIBUTING.md)

Reviewed-on: hummingbird/hummingbird#423
2026-08-23 09:42:30 +00:00
.cargo fix: fdk aac on aarch64 windows (#385) 2026-07-15 04:31:20 +02:00
.forgejo feat: swap out forge url (#396) 2026-08-23 09:08:12 +00:00
.github chore: fix windows ci again 2026-08-08 01:52:22 -07:00
.woodpecker feat: swap out forge url in upload-release script (#423) 2026-08-23 09:42:30 +00:00
assets feat: add file watching to scanner (#399) 2026-08-01 19:42:16 +00:00
docs feat: swap out forge url (#396) 2026-08-23 09:08:12 +00:00
migrations feat: add genre support (#420) 2026-08-22 22:35:14 +00:00
package chore: update version for 0.4 2026-04-13 13:45:15 -05:00
queries feat: add genre support (#420) 2026-08-22 22:35:14 +00:00
res Update Translations - ja, de 2026-04-04 21:25:15 +00:00
src feat: swap out forge url (#396) 2026-08-23 09:08:12 +00:00
translations feat: swap out forge url (#396) 2026-08-23 09:08:12 +00: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: ignore Session.vim 2026-04-15 01:03:26 -07:00
.parlance.json chore: unset parlance deadline 2026-04-13 11:56:46 -07:00
build.rs chore: update gpui and trivial deps (#375) 2026-06-17 06:32:42 +02:00
Cargo.lock fix: disable cpal realtime-dbus feature 2026-08-16 19:52:56 -07:00
Cargo.toml fix: disable cpal realtime-dbus feature 2026-08-16 19:52:56 -07:00
Contemporary.toml chore: set translations for application_generic_name 2026-03-22 23:32:10 -07:00
CONTRIBUTING.md feat: update from codeberg releases (#349) 2026-05-02 19:46:32 +02:00
flake.lock fix: our nix flake issues 2026-08-13 17:00:09 -07:00
flake.nix fix: enable realtime-dbus 2026-08-13 20:11:49 -07:00
LICENSE chore: create LICENSE 2024-10-26 23:38:28 -07:00
README.md feat: swap out forge url (#396) 2026-08-23 09:08:12 +00: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 and ListenBrainz) support
  • Fuzzy-find search
  • ReplayGain
  • Desktop integration
  • Playlists
  • Lyrics
  • Discord RPC
  • Graphical parametric equalizer

Planned Features

  • WASM Extension support:
    • Codecs
    • Scrobble services
    • Metadata services
    • Cloud storage services
  • Improved library management:
    • Filtering
    • Tags
    • More advanced playlist management
    • Statistics
    • Star rating
  • Cloud storage support:
    • Jellyfin
    • OpenSubsonic
    • WebDAV
  • Full keyboard navigation
  • Sleep timer

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 automatically by CI and uploaded to the latest tag.

Official builds are signed with minisign. The signature is attached to the release and must be downloaded seperately and placed next to the binary you are attempting to verify. Verify with:

minisign -Vm <file> -P RWTVGbNhJ/77g9Dm280SNcfxaPz118Hgg8vI55tFX83sIMiObZuxpDyV

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://git.mailliw.org/hummingbird/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.