Lightningbeam/lightningbeam-ui/lightningbeam-core/Cargo.toml

87 lines
2.5 KiB
TOML

[package]
name = "lightningbeam-core"
version = "0.1.0"
edition = "2021"
[dependencies]
serde = { workspace = true }
serde_json = { workspace = true }
# UI framework (for Color32 conversion)
egui = { workspace = true }
# GPU rendering infrastructure
wgpu = { workspace = true }
bytemuck = { version = "1.14", features = ["derive"] }
# Geometry and rendering
kurbo = { workspace = true }
vello = { workspace = true }
# Text layout/shaping (text layers)
parley = { workspace = true }
# Glyph outline extraction for lossless text→SVG export. Pinned to the version parley resolves
# (0.43) so glyph IDs / normalized coords from parley layouts match this outliner.
skrifa = "0.43"
# Image decoding for image fills
image = { workspace = true }
# Unique identifiers
uuid = { version = "1.0", features = ["v4", "serde"] }
# Audio backend
daw-backend = { path = "../../daw-backend" }
# Video decoding
ffmpeg-next = "8.0"
# AVIO-over-Read+Seek shim: decode packed video by streaming from the SQLite blob.
ffmpeg-blob-io = { path = "../../ffmpeg-blob-io" }
lru = "0.12"
# File I/O
zip = "0.6"
chrono = "0.4"
base64 = "0.21"
pathdiff = "0.2"
# .beam container: SQLite database file. `bundled` compiles SQLite from source
# (no system dependency); `blob` enables incremental blob I/O for streaming.
rusqlite = { version = "0.31", features = ["bundled", "blob"] }
# Audio encoding for embedded files
flacenc = "0.4" # For FLAC encoding (lossless)
claxon = "0.4" # For FLAC decoding
# Spatial indexing for DCEL vertex snapping
rstar = "0.12"
# System clipboard
arboard = "3"
# ── Temporary: platform-native custom MIME type clipboard ─────────────────────
# These deps exist because arboard does not yet support custom MIME types.
# Remove once arboard gains that feature (https://github.com/1Password/arboard/issues/14).
[target.'cfg(target_os = "linux")'.dependencies]
wl-clipboard-rs = "0.9"
x11-clipboard = "0.9"
[target.'cfg(target_os = "macos")'.dependencies]
objc2 = "0.6"
objc2-app-kit = { version = "0.3", features = ["NSPasteboard"] }
objc2-foundation = { version = "0.3", features = ["NSString", "NSData"] }
[target.'cfg(target_os = "windows")'.dependencies]
windows-sys = { version = "0.60", features = [
"Win32_Foundation",
"Win32_System_DataExchange",
"Win32_System_Memory",
] }
[dependencies.tiny-skia]
version = "0.11"
[dev-dependencies]
# For the packed-video streaming integration test (blob -> AVIO -> ffmpeg Input).
ffmpeg-blob-io = { path = "../../ffmpeg-blob-io" }
ffmpeg-next = "8.0"