{"id":17286210,"url":"https://github.com/kamiyaa/dizi","last_synced_at":"2025-07-31T23:33:07.519Z","repository":{"id":45289774,"uuid":"399309641","full_name":"kamiyaa/dizi","owner":"kamiyaa","description":"Server-client music player written in Rust","archived":false,"fork":false,"pushed_at":"2024-09-10T04:24:46.000Z","size":4999,"stargazers_count":41,"open_issues_count":1,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-10-16T09:58:35.199Z","etag":null,"topics":["audio","audio-player","hacktoberfest","music","music-player","rust","server-client","termion","toml","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kamiyaa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-08-24T02:26:09.000Z","updated_at":"2024-09-29T17:34:29.000Z","dependencies_parsed_at":"2023-01-23T14:01:05.874Z","dependency_job_id":"21997778-df36-4a36-9976-a549db4e6119","html_url":"https://github.com/kamiyaa/dizi","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fdizi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fdizi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fdizi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamiyaa%2Fdizi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamiyaa","download_url":"https://codeload.github.com/kamiyaa/dizi/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243852499,"owners_count":20358271,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","audio-player","hacktoberfest","music","music-player","rust","server-client","termion","toml","tui"],"created_at":"2024-10-15T09:58:43.094Z","updated_at":"2025-03-16T10:12:05.159Z","avatar_url":"https://github.com/kamiyaa.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Linux build](https://github.com/kamiyaa/dizi/actions/workflows/rust-linux-main.yml/badge.svg)](https://github.com/kamiyaa/dizi/actions/workflows/rust-linux-main.yml)\n\n[![MacOS build](https://github.com/kamiyaa/dizi/actions/workflows/rust-macos-main.yml/badge.svg)](https://github.com/kamiyaa/dizi/actions/workflows/rust-macos-main.yml)\n\n# dizi\nServer-client music player written in Rust\n\nThe goal of this project is to create a modern version of [mocp](http://moc.daper.net/) in Rust.\n\n![Alt text](screenshot.png?raw=true \"dizi\")\n\n## Motivation\nmocp currently interfaces with ALSA to play audio.\nThis doesn't play well with [pipewire](https://pipewire.org/)'s pipewire-alsa plugin;\nwhenever mocp is playing music, other audio/video apps stop working and vice versa.\n\n## Dependencies\n - A system supporting UNIX sockets\n - [cargo](https://github.com/rust-lang/cargo/)\n - [rustc](https://www.rust-lang.org/)\n - Jack or Alsa or any other audio system [cpal](https://github.com/RustAudio/cpal) supports\n - `file` command for audio file detection\n\n## Building\n```\n~$ cargo build\n```\n\n## Installation\n#### For single user\n```\n~$ cargo install --path=. --force\n```\n\n#### System wide\n```\n~# cargo install --path=. --force --root=/usr/local     # /usr also works\n```\n\n## Usage\n```\n~ $ dizi-server     # starts server\n~ $ RUST_LOG=debug dizi-server      # starts server with debug messages enabled\n~ $ dizi            # starts server if not already started, then starts frontend\n```\n\n## Configuration\n\nCheck out [docs](/docs) for details and [config](/config) for examples\n\n#### [client.toml](/config/client.toml)\n- client configurations\n\n#### [keymap.toml](/config/keymap.toml)\n- for keybindings for client\n\n#### [theme.toml](/config/theme.toml)\n- color customizations for client\n\n#### [server.toml](/config/server.toml)\n- server configurations\n\n## Contributing\nSee [docs](/docs)\n\n## Features/Bugs\n\nPlease create an issue :)\n\n## TODOs\n\n### Server-side\n - [x] play/pause support\n - [x] get audio duration (requires [rodio](https://github.com/RustAudio/rodio) and [symphonia](https://github.com/pdeljanov/Symphonia) to work together on this)\n - [x] volume support\n - [x] fast forward/rewind\n - [x] directory playing\n   - [x] shuffle\n   - [x] repeat\n   - [x] next\n   - [ ] sorting\n - [x] playlist support\n   - [x] add/delete/update songs\n   - [x] recursively add songs in a directory\n   - [x] shuffle\n   - [x] repeat\n   - [x] next\n   - [x] loading\n   - [x] clearing\n   - [x] save on exit\n - [x] show music progress\n - [x] configurable audio system\n   - [x] ALSA support (current default)\n   - [x] JACK support\n   - [ ] Pulseaudio support (issue https://github.com/RustAudio/cpal/issues/259)\n   - [ ] Pipewire support (issue https://github.com/RustAudio/cpal/issues/554)\n - [x] querying\n   - [x] file name\n   - [x] file path\n   - [x] show audio metadata (title, artists, genre, album, etc)\n   - [x] playlist index and length\n - [x] on song change hook\n\n### Client-side\n - [x] show hidden files\n - [x] searching\n   - [x] glob search\n   - [x] case-insensitive search\n   - [x] skim search (fzf)\n - [x] show player progression\n - [x] playlist support\n   - [x] show playlist\n   - [x] add/delete/update songs\n   - [x] shuffle\n   - [x] repeat\n   - [x] next\n   - [x] clearing\n - [ ] show audio metadata (artists, genre, album, etc)\n - [x] theming support\n - [x] custom layout support\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamiyaa%2Fdizi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamiyaa%2Fdizi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamiyaa%2Fdizi/lists"}