This repository has no description
1[package]
2name = "shapemaker"
3version = "1.2.2"
4rust-version = "1.90"
5edition = "2024"
6include = ["/src"]
7license = "AGPL-3.0"
8homepage = "https://gwen.works/shapemaker"
9repository = "https://github.com/gwennlbh/shapemaker"
10authors = ["Gwenn Le Bihan <gwenn.lebihan7@gmail.com>"]
11description = "An experimental WASM-capable, generative SVG-based video rendering engine that reacts to MIDI or audio data"
12
13[workspace]
14members = [
15 "examples/dna-analysis-machine",
16 "examples/schedule-hell",
17 "examples/specimen",
18 "examples/playground",
19 "xtask",
20]
21
22[lib]
23crate-type = ["cdylib", "lib"]
24
25# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
26
27[features]
28default = ["vst", "video", "video-server"]
29vst = [
30 "rand/thread_rng",
31 "dep:env_logger",
32 "dep:nih_plug",
33 "dep:ws",
34 "dep:tungstenite",
35]
36web = ["dep:wasm-bindgen", "dep:web-sys"]
37video = [
38 "dep:env_logger",
39 "dep:vgv",
40 "dep:notify-rust",
41 "dep:tokio",
42 "dep:easing-function",
43]
44video-server = ["dep:axum"]
45
46[dependencies]
47nih_plug = { git = "https://github.com/robbert-vdh/nih-plug.git", features = [
48 "assert_process_allocs",
49], optional = true }
50anyhow = "1.0.100"
51chrono = "0.4.42"
52indicatif = "0.18.2"
53itertools = "0.14.0"
54midly = "0.5.3"
55rand = { version = "0.9.2", default-features = false, features = [
56 "small_rng",
57 "std",
58 "std_rng",
59] }
60serde_cbor = "0.11.2"
61serde_json = "1.0.145"
62wasm-bindgen = { version = "0.2.105", optional = true }
63getrandom = { version = "0.2", features = ["js"] }
64web-sys = { version = "0.3.82", optional = true, features = [
65 'Document',
66 'Element',
67 'HtmlElement',
68 'Node',
69 'Window',
70] }
71once_cell = "1.21.3"
72nanoid = "0.4.0"
73console = { version = "0.16.1", features = ["windows-console-colors"] }
74backtrace = "0.3.76"
75slug = "0.1.6"
76roxmltree = "0.21.1"
77strum = { version = "0.27.2", features = ["strum_macros"] }
78strum_macros = "0.27.2"
79tiny-skia = "0.11.4"
80resvg = "0.45.1"
81measure_time = "0.9.0"
82env_logger = { version = "0.11.8", optional = true }
83log = "0.4.28"
84rayon = "1.11.0"
85ws = { version = "0.9.2", optional = true }
86toml = "0.9.8"
87serde = { version = "1.0.228", features = ["derive"] }
88url = "2.5.7"
89tungstenite = { version = "0.28.0", optional = true }
90axum = { version = "0.8.6", optional = true, features = ["json"] }
91vgv = { git = "https://github.com/gwennlbh/vgvf", version = "0.1.0", optional = true }
92serde-aux = "4.7.0"
93notify-rust = { version = "4.11.7", optional = true }
94tokio = { version = "1.48.0", optional = true }
95easing-function = { version = "0.1.1", optional = true }
96quick-xml = "0.38.3"
97
98
99[dev-dependencies]
100insta = "1.43.2"
101rust-analyzer = "0.0.1"