Skip to content

Commit

Permalink
Big refactor to workspace, split into knyst, knyst_macro and knyst_co…
Browse files Browse the repository at this point in the history
…re\nknyst_core now contains some fundamental traits and structs to avoid cyclic dependencies
  • Loading branch information
ErikNatanael committed Oct 26, 2023
1 parent e644170 commit 05e731c
Show file tree
Hide file tree
Showing 50 changed files with 3,975 additions and 1,082 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/target
/Cargo.lock
.cargo/config
.vscode

flamegraph.svg
callgrind*
Expand Down
99 changes: 3 additions & 96 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,96 +1,3 @@
[package]
name = "knyst"
version = "0.4.3"
edition = "2021"
license = "MIT OR Apache-2.0"
description = "Real time dynamic audio graph and synthesis library"
readme = "README.md"
keywords = ["audio", "synthesis", "music", "dsp", "sound"]
categories = ["multimedia::audio"]
authors = ["Erik Natanael Gustafsson <[email protected]>"]
repository = "https://github.com/ErikNatanael/knyst"
homepage = "https://github.com/ErikNatanael/knyst"

[package.metadata.docs.rs]
features = ["jack", "cpal", "serde-derive"]

[features]
serde-derive = ["dep:serde"]
debug-warn-on-alloc = ["assert_no_alloc/warn_debug"]
default = ["cpal"]
unstable = []

[dependencies]
slotmap = "1.0"
# For ergonomic error handling
thiserror = "1.0"
# For real time safe communication between threads
rtrb = "0.2"
fastrand = "2.0.1"
# Fast approximation of common float math. Probably under BSD-3.
fastapprox = "0.3"
# Downcast used to have any user data in the Resources struct
downcast-rs = "1.2.0"
# Loading audio buffers
symphonia = { version = "0.5.1", features = ["mp3"] }
# JACK audio backend
jack = { version = "0.11", optional = true }
# CPAL audio backend
cpal = { version = "0.15", optional = true }
# Only for non real time use
crossbeam-channel = "0.5.6"
serde = { version = "1.0", features = ["derive"], optional = true }
assert_no_alloc = { version = "1.1.2" }

# For concurrency testing
[target.'cfg(loom)'.dependencies]
loom = { version = "0.7", features = ["checkpoint"] }

[dev-dependencies]
rand = "0.8"
criterion = "0.5"
anyhow = "1.0"
dialog = "0.3"
fundsp = { version = "0.15" }
termion = "2.0.1"
rfd = "0.12"
tokio = { version = "1.26.0", features = [
"rt",
"time",
"macros",
"rt-multi-thread",
] }


# [[bench]]
# name = "micro_benchmarks"
# harness = false

[[bench]]
name = "large_sine_graph"
harness = false

[[example]]
name = "jack_example"
path = "examples/jack_example.rs"
required-features = ["jack"]

[[example]]
name = "beat_callbacks"
path = "examples/beat_callbacks.rs"
required-features = ["cpal"]

[[example]]
name = "cpal_example"
path = "examples/cpal_example.rs"
required-features = ["cpal"]

[[example]]
name = "interactive"
path = "examples/interactive.rs"
required-features = ["cpal"]

[[example]]
name = "sound_file_playback"
path = "examples/sound_file_playback.rs"
required-features = ["cpal"]
[workspace]
members = ["knyst", "knyst_macro", "knyst_core"]
resolver = "2"
Loading

0 comments on commit 05e731c

Please sign in to comment.