| Crates.io | shukusai |
| lib.rs | shukusai |
| version | 0.0.0 |
| created_at | 2023-03-23 14:46:15.947682+00 |
| updated_at | 2023-03-23 14:46:15.947682+00 |
| 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 space
| 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 |
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 ExplorerVCRUNTIME140.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 |