Audio player written in Rust using gtk-rs and rodio.
  • Rust 99.9%
  • Shell 0.1%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Anthony Mills c576c81eaf
All checks were successful
CI / lint (push) Successful in 3m9s
CI / test (push) Successful in 2m57s
Release / flatpak (push) Successful in 3m37s
Release / arch (push) Successful in 3m15s
Release / release (push) Successful in 7m3s
Added file type and bitrate to the track playing information area.
2026-10-15 01:34:23 +11:00
.forgejo/workflows Made child windows (such as the About dialog) dismissible by interacting with the parent window. 2026-10-06 08:38:37 +08:00
resources Fix for the flatpak release build. 2026-09-23 10:05:25 +08:00
screenshots Updated screenshots foor README. 2026-09-03 16:04:15 +08:00
src Added file type and bitrate to the track playing information area. 2026-10-15 01:34:23 +11:00
.gitignore Initial commit. 2026-01-08 12:08:22 +07:00
Cargo.lock Bumped version to 0.1.8 2026-10-14 08:09:21 +11:00
Cargo.toml Bumped version to 0.1.8 2026-10-14 08:09:21 +11:00
CHANGELOG.md Added file type and bitrate to the track playing information area. 2026-10-15 01:34:23 +11:00
LICENSE LICENSE update and fixed spelling mistake in the cargo file. 2026-04-08 09:26:37 +07:00
README.md Removed the reference to the deprecated Codeberg repo in the README. 2026-09-16 09:19:54 +08:00

Crusty Player

CI

Crusty Player is an audio player for Linux written in Rust.

Features

  • Multi-format Support: Play MP3, WAV, OGG, and FLAC files.
  • Playlist Management:
    • Add audio files individually or by the folder.
    • Support for loading existing M3U playlist files and saving a created playlist.
    • Remove tracks or clear the entire playlist.
    • Automatic playback of the next track.
  • Playback Controls:
    • Play/Pause, Stop.
    • Next/Previous track.
    • Seek through tracks with a progress slider.
    • Fast-forward and Rewind (10s).
    • Volume control.
  • Metadata & Visuals:
    • Displays Artist, Album, Genre, and Year from audio tags.
    • Extracts and displays embedded cover art from audio files.

Screenshots

Playing music using a light desktop theme:

CrustyPlayerUILight

Application information window:

CrustyPlayerUIAbout

Playing music playlist with shuffle enabled using a dark desktop theme:

CrustyPlayerUIDark

Playing a single podcast file using a dark desktop theme:

CrustyPlayerUIDark

Installation

Prerequisites

  • Rust and Cargo (latest stable version recommended > v1.94.0).
  • System dependencies (on Ubuntu/Debian):
    • Audio playback: sudo apt install libasound2-dev
    • GTK4: sudo apt install libgtk-4-dev

Building from Source

  1. Clone the repository:

    git clone https://code.anthony-mills.com/anthonymills/Crusty-Player.git
    cd Crusty-Player
    
  2. Build the project:

    cargo build --release
    
  3. Run the player:

    cargo run --release
    

License

This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for more information.

Acknowledgments

  • gtk-rs for the GTK4 GUI framework bindings.
  • rodio for audio playback.
  • symphonia for audio decoding and metadata parsing.

Author

This project was created by Anthony Mills.