1 unstable release
0.0.0 | Mar 23, 2023 |
---|
#1 in #festival
Used in festival-gui
3MB
3K
SLoC
Festival
Music player for Windows/macOS/Linux.
Comparison
For context on these graphs (there are always trade-offs), see cmp/
.
Input data:
- 135 Artists
- 500 Albums
- 7000 Songs
170GB
total disk space
Frontends
Frontend | Released | Description |
---|---|---|
festival-gui |
🔴 | egui GUI |
festival-web |
🔴 | WASM version of egui GUI |
festivald |
🔴 | Daemon (mpd -like) |
festival-cli |
🔴 | CLI client that connects to festivald |
Documentation
For a broad overview of Festival
's internals, see src/
.
Documentation is also available on docs.rs
.
The crate festival
is being squatted, so instead, Festival
's
original name, shukusai
, is the name used to represent Festival
internals.
祝祭/shukusai
translated means: Festival
.
In documentation:
shukusai
specifically meansFestival
's internalsFestival
means a frontend OR the project as a whole
Build
General Info
You need cargo
.
Building in this repo currently means building festival-gui
. The produced binary is named festival
.
There are 30
unit tests, you may want to run:
cargo test
before attempting a full build.
Linux
The pre-compiled Linux binaries are built on Debian 11, you'll need these packages to build:
sudo apt install build-essential cmake libgtk-3-dev
After that, run:
cargo build --release
macOS
On macOS, if you want the binary to have an icon, you must install cargo-bundle
.
After that, run:
cargo bundle --release
This bundles Festival
into Festival.app
, the way it comes in the pre-built tars for macOS.
Windows
cargo build --release
There is a build.rs
file in the repo solely for Windows-specific things:
- It sets the icon in
File Explorer
- It statically links
VCRUNTIME140.dll
(the binary will not be portable without this)
License
All of Festival
is licensed under the MIT License.
All of the fonts Festival
uses:
Font | License |
---|---|
Adobe Source Code Pro | OFL-1.1 |
Adobe Source Han Sans | OFL-1.1 |
JuliaMono | OFL-1.1 |
Emoji Icon Font | MIT |
Noto-Emoji | OFL-1.1 |
Hack | MIT |
Ubuntu | Ubuntu Font License |
All of the libraries Festival
(directly) uses:
Library | Purpose | License |
---|---|---|
anyhow | Error handling | MIT & Apache-2.0 |
chrono | Time formatting | MIT & Apache-2.0 |
crossbeam_channel | Thread message passing | MIT & Apache-2.0 |
disk | Saving to disk | MIT |
egui | GUI | MIT & Apache-2.0 |
egui_extras | GUI | MIT & Apache-2.0 |
eframe | GUI | MIT & Apache-2.0 |
egui-notify | GUI | MIT |
env_logger | Logging | MIT & Apache-2.0 |
fast_image_resize | Image processing | MIT & Apache-2.0 |
image | Image processing | MIT |
infer | File MIME detection | MIT |
lazy_static | Lazy static macro | MIT & Apache-2.0 |
lofty | Audio metadata parsing | MIT & Apache-2.0 |
log | Logging | MIT & Apache-2.0 |
notify | Filesystem watching | Artistic License 2.0 & CC Zero 1.0 |
mime_guess | File MIME detection | MIT |
rand | RNG | MIT & Apache-2.0 |
rfd | Native file dialog | MIT |
serde | (De)serialization | MIT & Apache-2.0 |
serde_bytes | (De)serialization | MIT & Apache-2.0 |
souvlaki | Native media controls | MIT |
strsim | String similarity | MIT |
Symphonia | Audio demuxing, decoding | MPL-2.0 |
readable | Human readable data | MIT |
rolock | Read only lock | MIT |
walkdir | Recursive PATH walking | MIT & Unlicense |
Dependencies
~20–59MB
~1M SLoC