[package]
edition = "2024"
rust-version = "1.85"
name = "spanda"
version = "0.9.3"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A general-purpose animation library for Rust — tweening, keyframes, timelines, and physics."
readme = "README.md"
keywords = [
"animation",
"tween",
"easing",
"keyframe",
"gamedev",
]
categories = [
"game-development",
"graphics",
"mathematics",
"multimedia",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/aarambh-darshan/spanda"
[features]
bevy = [
"dep:bevy_app",
"dep:bevy_ecs",
"dep:bevy_time",
"std",
]
default = ["std"]
gpu = [
"dep:wgpu",
"dep:pollster",
"dep:bytemuck",
"dep:bytemuck_derive",
"std",
]
palette = ["dep:palette"]
serde = ["dep:serde"]
std = []
tokio = [
"dep:tokio",
"std",
]
wasm = [
"dep:wasm-bindgen",
"dep:js-sys",
"std",
]
wasm-dom = [
"wasm",
"dep:web-sys",
]
[lib]
name = "spanda"
path = "src/lib.rs"
[[example]]
name = "bevy_bounce"
path = "examples/bevy_bounce.rs"
required-features = ["bevy"]
[[example]]
name = "catmull_rom_demo"
path = "examples/catmull_rom_demo.rs"
required-features = ["std"]
[[example]]
name = "colour_demo"
path = "examples/colour_demo.rs"
required-features = ["palette"]
[[example]]
name = "gesture_demo"
path = "examples/gesture_demo.rs"
required-features = ["std"]
[[example]]
name = "gpu_batch_demo"
path = "examples/gpu_batch_demo.rs"
required-features = ["gpu"]
[[example]]
name = "inertia_demo"
path = "examples/inertia_demo.rs"
required-features = ["std"]
[[example]]
name = "morph_demo"
path = "examples/morph_demo.rs"
required-features = ["std"]
[[example]]
name = "motion_path_demo"
path = "examples/motion_path_demo.rs"
required-features = ["std"]
[[example]]
name = "spring_demo"
path = "examples/spring_demo.rs"
required-features = ["std"]
[[example]]
name = "svg_path_demo"
path = "examples/svg_path_demo.rs"
required-features = ["std"]
[[example]]
name = "tui_progress"
path = "examples/tui_progress.rs"
required-features = ["std"]
[[example]]
name = "tui_spinner"
path = "examples/tui_spinner.rs"
required-features = ["std"]
[[test]]
name = "colour_interpolation"
path = "tests/colour_interpolation.rs"
required-features = ["palette"]
[[test]]
name = "keyframe_looping"
path = "tests/keyframe_looping.rs"
[[test]]
name = "motion_path"
path = "tests/motion_path.rs"
[[test]]
name = "motion_path_full"
path = "tests/motion_path_full.rs"
[[test]]
name = "relative_positioning"
path = "tests/relative_positioning.rs"
[[test]]
name = "scroll_driver"
path = "tests/scroll_driver.rs"
[[test]]
name = "spring_generic"
path = "tests/spring_generic.rs"
[[test]]
name = "spring_settles"
path = "tests/spring_settles.rs"
[[test]]
name = "stagger_timeline"
path = "tests/stagger_timeline.rs"
[[test]]
name = "timeline_sequence"
path = "tests/timeline_sequence.rs"
[[test]]
name = "tween_looping"
path = "tests/tween_looping.rs"
[[test]]
name = "tween_with_easing"
path = "tests/tween_with_easing.rs"
[[test]]
name = "v080_pure"
path = "tests/v080_pure.rs"
[[test]]
name = "v090_gesture"
path = "tests/v090_gesture.rs"
[[test]]
name = "v090_gpu"
path = "tests/v090_gpu.rs"
[[test]]
name = "v090_layout"
path = "tests/v090_layout.rs"
[[bench]]
name = "easing_bench"
path = "benches/easing_bench.rs"
harness = false
[dependencies.bevy_app]
version = "0.18"
optional = true
[dependencies.bevy_ecs]
version = "0.18"
optional = true
[dependencies.bevy_time]
version = "0.18"
optional = true
[dependencies.bytemuck]
version = "1"
optional = true
[dependencies.bytemuck_derive]
version = "1"
optional = true
[dependencies.js-sys]
version = "0.3"
optional = true
[dependencies.num-traits]
version = "0.2.19"
features = ["libm"]
default-features = false
[dependencies.palette]
version = "0.7"
optional = true
[dependencies.pollster]
version = "0.4"
optional = true
[dependencies.serde]
version = "1"
features = ["derive"]
optional = true
[dependencies.tokio]
version = "1"
features = ["sync"]
optional = true
[dependencies.wasm-bindgen]
version = "0.2"
optional = true
[dependencies.web-sys]
version = "0.3"
features = [
"Window",
"Document",
"Element",
"HtmlElement",
"DomRect",
"CssStyleDeclaration",
"Node",
"NodeList",
"Text",
"EventTarget",
"Event",
"PointerEvent",
"MouseEvent",
"HtmlCollection",
"TouchEvent",
"Touch",
"TouchList",
"WheelEvent",
"KeyboardEvent",
"HashChangeEvent",
"MediaQueryList",
"MediaQueryListEvent",
"AddEventListenerOptions",
"Location",
"History",
"UiEvent",
"Url",
"HtmlAnchorElement",
]
optional = true
[dependencies.wgpu]
version = "24"
optional = true
[dev-dependencies.approx]
version = "0.5"
[dev-dependencies.criterion]
version = "0.5"
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"
strip = true