Crates.io | shukusai |
lib.rs | shukusai |
version | 0.0.0 |
source | src |
created_at | 2023-03-23 14:46:15.947682 |
updated_at | 2023-03-23 14:46:15.947682 |
description | Festival (music player) internals |
homepage | https://festival.pm |
repository | https://github.com/hinto-janai/festival |
max_upload_size | |
id | 818381 |
size | 3,158,381 |
Music player for Windows/macOS/Linux.
For context on these graphs (there are always trade-offs), see cmp/
.
Input data:
170GB
total disk spaceFrontend | 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 |
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 means Festival
's internalsFestival
means a frontend OR the project as a wholeYou 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.
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
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.
cargo build --release
There is a build.rs
file in the repo solely for Windows-specific things:
File Explorer
VCRUNTIME140.dll
(the binary will not be portable without this)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 |