phosphor-studio 0.3.21

A terminal-native DAW with built-in synthesizers and MIDI support
[workspace]
members = [
    "crates/phosphor-core",
    "crates/phosphor-dsp",
    "crates/phosphor-midi",
    "crates/phosphor-plugin",
    "crates/phosphor-app",
    "crates/phosphor-tui",
    "crates/phosphor-gui",
]
resolver = "2"

[workspace.package]
version = "0.3.21"
edition = "2021"
license = "MIT"
rust-version = "1.75"
repository = "https://github.com/joshjetson/phosphor"
homepage = "https://github.com/joshjetson/phosphor"
description = "A terminal-native DAW with built-in synthesizers and MIDI support"
keywords = ["daw", "audio", "synthesizer", "midi", "tui"]
categories = ["multimedia::audio", "command-line-utilities"]

[workspace.dependencies]
# Audio
cpal = "0.15"
dasp = { version = "0.11", features = ["signal", "interpolate", "ring_buffer"] }

# MIDI
midir = "0.10"
wmidi = "4.0"

# Lock-free communication
ringbuf = "0.4"
crossbeam-channel = "0.5"

# TUI
ratatui = "0.29"
crossterm = "0.28"

# GUI
eframe = "0.29"
egui = "0.29"

# Serialization
serde = { version = "1", features = ["derive"] }
serde_json = "1"

# Error handling
anyhow = "1"
thiserror = "2"

# Logging
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }

# CLI
clap = { version = "4", features = ["derive"] }

# Testing
criterion = { version = "0.5", features = ["html_reports"] }
proptest = "1"
assert_no_alloc = "1.1"

# Internal crates
phosphor-app = { path = "crates/phosphor-app", version = "0.3.21" }
phosphor-core = { path = "crates/phosphor-core", version = "0.3.21" }
phosphor-dsp = { path = "crates/phosphor-dsp", version = "0.3.21" }
phosphor-midi = { path = "crates/phosphor-midi", version = "0.3.21" }
phosphor-plugin = { path = "crates/phosphor-plugin", version = "0.3.21" }
phosphor-tui = { path = "crates/phosphor-tui", version = "0.3.21" }
phosphor-gui = { path = "crates/phosphor-gui", version = "0.3.21" }

# Root binary
[package]
name = "phosphor-studio"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
description = "A terminal-native DAW with built-in synthesizers and MIDI support"
readme = "README.md"
keywords = ["daw", "audio", "synthesizer", "midi", "tui"]
categories = ["multimedia::audio", "command-line-utilities"]

[[bin]]
name = "phosphor"
path = "src/main.rs"

[dependencies]
phosphor-core.workspace = true
phosphor-tui.workspace = true
phosphor-gui.workspace = true
clap.workspace = true
anyhow.workspace = true
tracing.workspace = true
tracing-subscriber.workspace = true