[package]
edition = "2024"
rust-version = "1.93"
name = "wavyte"
version = "0.2.1"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Programmatic video composition and rendering engine in Rust (CPU backend, ffmpeg MP4 encoding)"
homepage = "https://github.com/Wavyte/wavyte"
documentation = "https://docs.rs/wavyte"
readme = "README.md"
keywords = [
"video",
"rendering",
"compositing",
"ffmpeg",
"motion-graphics",
]
license = "AGPL-3.0-only"
repository = "https://github.com/Wavyte/wavyte"
resolver = "2"
[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
default = []
media-ffmpeg = []
[lib]
name = "wavyte"
path = "src/lib.rs"
[[example]]
name = "assets_smoke"
path = "examples/assets_smoke.rs"
[[example]]
name = "build_dsl_and_dump_json"
path = "examples/build_dsl_and_dump_json.rs"
[[example]]
name = "eval_frames"
path = "examples/eval_frames.rs"
[[example]]
name = "render_aesthetic_fx_mp4"
path = "examples/render_aesthetic_fx_mp4.rs"
[[example]]
name = "render_aesthetic_layout_mp4"
path = "examples/render_aesthetic_layout_mp4.rs"
[[example]]
name = "render_aesthetic_motion_mp4"
path = "examples/render_aesthetic_motion_mp4.rs"
[[example]]
name = "render_blur_png"
path = "examples/render_blur_png.rs"
[[example]]
name = "render_crossfade_png"
path = "examples/render_crossfade_png.rs"
[[example]]
name = "render_full_gamut_media_layout_mp4"
path = "examples/render_full_gamut_media_layout_mp4.rs"
[[example]]
name = "render_one_frame"
path = "examples/render_one_frame.rs"
[[example]]
name = "render_remotion_hello_world_mp4"
path = "examples/render_remotion_hello_world_mp4.rs"
[[example]]
name = "render_svg_fade_mp4"
path = "examples/render_svg_fade_mp4.rs"
[[example]]
name = "render_to_mp4"
path = "examples/render_to_mp4.rs"
[[test]]
name = "asset_store"
path = "tests/asset_store.rs"
[[test]]
name = "eval_snapshot"
path = "tests/eval_snapshot.rs"
[[test]]
name = "json_validate"
path = "tests/json_validate.rs"
[[test]]
name = "media_pipeline"
path = "tests/media_pipeline.rs"
[[test]]
name = "render_cpu"
path = "tests/render_cpu.rs"
[[test]]
name = "render_cpu_svg"
path = "tests/render_cpu_svg.rs"
[[test]]
name = "render_parallel_parity"
path = "tests/render_parallel_parity.rs"
[[test]]
name = "render_svg_text"
path = "tests/render_svg_text.rs"
[[test]]
name = "svg_text_fixture"
path = "tests/svg_text_fixture.rs"
[[test]]
name = "text_font_identity"
path = "tests/text_font_identity.rs"
[dependencies.anyhow]
version = "1"
[dependencies.image]
version = "0.25.9"
[dependencies.kurbo]
version = "0.13"
features = ["serde"]
[dependencies.parley]
version = "0.7.0"
features = ["std"]
default-features = false
[dependencies.rayon]
version = "1.11.0"
[dependencies.resvg]
version = "0.46.0"
features = [
"text",
"system-fonts",
"memmap-fonts",
]
default-features = false
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.thiserror]
version = "2"
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
[dependencies.usvg]
version = "0.46.0"
features = [
"text",
"system-fonts",
"memmap-fonts",
]
default-features = false
[dependencies.vello_cpu]
version = "0.0.6"
features = [
"std",
"text",
"u8_pipeline",
]
default-features = false
[dev-dependencies.tracing-subscriber]
version = "0.3"
features = ["fmt"]