# Core Architecture:
Dango music player operates with a standalone cross-platform backend that can function with multiple frontends
This is to be implemented such that the `dango-core` crate controls all music-related functions, and provides an api for frontends to use.
`dango-gui` is intended to be a fully featured cross-platform native modular frontend
`dango-cli` is intended to be a minimal cli interface with basic playback and playlist support
---
###### note: all structure is subject to change during development
## dango-core:
Core functionality is provided by the `MusicController` struct, which provides an interface to interact with playback. All configuration is stored within a .toml file which it must be loaded from.
Music collections are stored in a sqlite3 database, which can be loaded from a directory/file.
Playback is handled by symphonia + cpal, which support most music file types.
## dango-gui:
TBD (egui current top candidate)
## dango-cli:
TBD