https://github.com/michaelb/ouverture
A next-generation music player and manager
https://github.com/michaelb/ouverture
music-player rust
Last synced: 3 months ago
JSON representation
A next-generation music player and manager
- Host: GitHub
- URL: https://github.com/michaelb/ouverture
- Owner: michaelb
- License: gpl-3.0
- Created: 2021-09-24T22:24:48.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-29T10:49:39.000Z (6 months ago)
- Last Synced: 2025-04-06T08:09:11.688Z (3 months ago)
- Topics: music-player, rust
- Language: Rust
- Homepage:
- Size: 324 KB
- Stars: 10
- Watchers: 1
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# ouverture
A next-generation music player and managerVery much at Work-In-*Planning* stage now 😄
## Planned features
- [ ] GUI (localizable)
- [ ] Backend (something like quodlibet would be nice for the basic features)
- [ ] Cross-platform
- [ ] Offline **and** online (ex: youtube-dl integration)
- [ ] Recommandation system at least a little smart
- [ ] Follow/sync, p2p or server tbd
- [ ] Fuzzy search as fast as possible
- [ ] Nice metadata handling
- [ ] Duplicate management
- [ ] auto playlists (auto genre, artist and 'mood' - whatever it means - detection)## Roadmap
- [x] working GUI framework
- [x] cli can communicate with server
- [x] define Song & other structs (playlist..)
- [x] use the database to store those values
- [x] display songs in a UI window
- [ ] fix warnings & clean out / refactor
- [ ] test (target > 60%)
- [x] play a sound
- [x] play/pause
- [ ] interface (seek bar, crossfade)
- [ ] logo
- [ ] searchable library
- [ ] playlists, sort by...
- [ ] fix warnings & clean out / refactor
- [ ] unit test (target > 80%)
- [x] fully themable GUI
- [ ] youtube-dl[p] integration
- [ ] beats/metadata service to fix metadata
- [ ] packaging (arch at least) & CI
- [ ] follow / sync semantics (private for now)
- [ ] music server
- [ ] public follow/sync (torrent?)## Some tech I plan to use or take inspiration from
- [QuodLibet](https://github.com/quodlibet/quodlibet)
- [iced](https://github.com/iced-rs/iced)
- [termusic](https://github.com/tramhao/termusic)
- [postgres](https://github.com/postgres/postgres)
- [beets](https://github.com/beetbox/beets)
- [yt-dlp](https://github.com/yt-dlp/yt-dlp)
- [rustic](https://github.com/rustic-music-player/rustic)
- [subsonic](http://www.subsonic.org/pages/index.jsp)## Maybe-useful ressources
- [winservice](https://lib.rs/crates/winservice)
- [Shawl](https://github.com/mtkennerly/shawl)
- [fluent-rs](https://github.com/projectfluent/fluent-rs)
- [clustering with linfa](https://github.com/rust-ml/linfa/tree/master/algorithms/linfa-clustering)
- [embbed postgres](https://crates.io/crates/pg-embed)
- [seaORM](https://www.sea-ql.org/SeaORM/docs/introduction/async)
- [diesel](https://github.com/diesel-rs/diesel)
- capnproto / bincode
- [platform-dirs](https://crates.io/crates/platform-dirs)
- [chamomille](https://github.com/cypherlink/chamomile)
- [dameonizer](https://github.com/knsd/daemonize)
- [uds on windows](https://crates.io/crates/uds_windows)
- [dim](https://github.com/Dusk-Labs/dim)## Dependencies
- postresql (automatically fetched from maven repos at compile time and embedded)
- libpulse (Linux)