{"id":20187390,"url":"https://github.com/michaelb/ouverture","last_synced_at":"2025-04-10T06:43:23.989Z","repository":{"id":51063452,"uuid":"410116910","full_name":"michaelb/ouverture","owner":"michaelb","description":"A next-generation music player and manager","archived":false,"fork":false,"pushed_at":"2024-12-29T10:49:39.000Z","size":332,"stargazers_count":10,"open_issues_count":2,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T08:09:11.688Z","etag":null,"topics":["music-player","rust"],"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/michaelb.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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-09-24T22:24:48.000Z","updated_at":"2023-05-25T20:09:54.000Z","dependencies_parsed_at":"2024-09-13T21:30:25.869Z","dependency_job_id":"9acd273d-8ddf-4a26-a696-931d37407bb6","html_url":"https://github.com/michaelb/ouverture","commit_stats":{"total_commits":52,"total_committers":2,"mean_commits":26.0,"dds":"0.17307692307692313","last_synced_commit":"eacc0968d8860fc8e889d4237a411248ab660dc2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fouverture","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fouverture/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fouverture/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelb%2Fouverture/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelb","download_url":"https://codeload.github.com/michaelb/ouverture/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248173440,"owners_count":21059595,"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":["music-player","rust"],"created_at":"2024-11-14T03:23:26.152Z","updated_at":"2025-04-10T06:43:23.958Z","avatar_url":"https://github.com/michaelb.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n\u003cdiv align=\"center\"\u003e\u003cp\u003e\n    \u003ca href=\"https://github.com/michaelb/ouverture/releases/latest\"\u003e\n      \u003cimg alt=\"Latest release\" src=\"https://img.shields.io/github/v/release/michaelb/ouverture\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/michaelb/ouverture/releases\"\u003e\n      \u003cimg alt=\"Total downloads\" src=\"https://img.shields.io/github/downloads/michaelb/ouverture/total\" /\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/michaelb/ouverture/pulse\"\u003e\n      \u003cimg alt=\"Last commit\" src=\"https://github.com/michaelb/ouverture/actions/workflows/main.yml/badge.svg\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/michaelb/ouverture\"\u003e\n      \u003cimg src=\"https://codecov.io/gh/michaelb/ouverture/branch/main/graph/badge.svg?token=455HOJY6A7\"/\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\u003c/div\u003e\n\n\n# ouverture\nA next-generation music player and manager\n\nVery much at Work-In-*Planning* stage now 😄\n\n\n## Planned features\n\n - [ ] GUI (localizable)\n - [ ] Backend (something like quodlibet would be nice for the basic features)\n - [ ] Cross-platform\n - [ ] Offline **and** online (ex: youtube-dl integration)\n - [ ] Recommandation system at least a little smart\n - [ ] Follow/sync, p2p or server tbd\n - [ ] Fuzzy search as fast as possible\n - [ ] Nice metadata handling\n - [ ] Duplicate management\n - [ ] auto playlists (auto genre, artist and 'mood' - whatever it means - detection)\n\n## Roadmap\n\n - [x] working GUI framework\n - [x] cli can communicate with server\n - [x] define Song \u0026 other structs (playlist..)\n - [x] use the database to store those values\n - [x] display songs in a UI window\n - [ ] fix warnings \u0026 clean out / refactor\n - [ ] test (target \u003e 60%)\n - [x] play a sound\n - [x] play/pause\n - [ ] interface (seek bar, crossfade)\n - [ ] logo\n - [ ] searchable library\n - [ ] playlists, sort by...\n - [ ] fix warnings \u0026 clean out / refactor\n - [ ] unit test (target \u003e 80%)\n - [x] fully themable GUI\n - [ ] youtube-dl[p] integration\n - [ ] beats/metadata service to fix metadata\n - [ ] packaging (arch at least) \u0026 CI\n - [ ] follow / sync semantics (private for now)\n - [ ] music server\n - [ ] public follow/sync (torrent?)\n\n\n## Some tech I plan to use or take inspiration from\n\n- [QuodLibet](https://github.com/quodlibet/quodlibet)\n- [iced](https://github.com/iced-rs/iced)\n- [termusic](https://github.com/tramhao/termusic)\n- [postgres](https://github.com/postgres/postgres)\n- [beets](https://github.com/beetbox/beets)\n- [yt-dlp](https://github.com/yt-dlp/yt-dlp)\n- [rustic](https://github.com/rustic-music-player/rustic)\n- [subsonic](http://www.subsonic.org/pages/index.jsp)\n\n## Maybe-useful ressources\n\n- [winservice](https://lib.rs/crates/winservice)\n- [Shawl](https://github.com/mtkennerly/shawl)\n- [fluent-rs](https://github.com/projectfluent/fluent-rs)\n- [clustering with linfa](https://github.com/rust-ml/linfa/tree/master/algorithms/linfa-clustering)\n- [embbed postgres](https://crates.io/crates/pg-embed)\n- [seaORM](https://www.sea-ql.org/SeaORM/docs/introduction/async)\n- [diesel](https://github.com/diesel-rs/diesel)\n- capnproto / bincode\n- [platform-dirs](https://crates.io/crates/platform-dirs)\n- [chamomille](https://github.com/cypherlink/chamomile)\n- [dameonizer](https://github.com/knsd/daemonize)\n- [uds on windows](https://crates.io/crates/uds_windows)\n- [dim](https://github.com/Dusk-Labs/dim)\n\n\n## Dependencies\n\n - postresql (automatically fetched from maven repos at compile time and embedded)\n - libpulse (Linux) \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelb%2Fouverture","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelb%2Fouverture","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelb%2Fouverture/lists"}