mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-23 12:13:04 -05:00
- apps/effectcraft-web (L6): eframe web runner booting the shared EffectcraftApp with a browser session: in-memory file table, <input type=file> pickers and drag-and-drop for open/import, downloads for Save and Render Queue outputs (several files as one stored .zip), and the window.effectcraft promise API over the control channel. Demo project on start. - wasm32 runtime fixes: web-time for Instant/SystemTime (render, engine, export, ui-egui); Frames renders queued jobs on the UI thread (Frames::pump) instead of a thread pool; Render Queue runs inline; relative outputs resolve under / ; control PNGs inline. - effectcraft-export: per-job output Sink (files to memory instead of disk); host FileExporter carries it; test that sink exports touch no file. - xtask web [--dev] [--serve PORT] (wasm-bindgen 0.2.129, optional wasm-opt, COOP/COEP server); effectcraft-web in WEB_CRATES. docs/web.md, headless Chrome smoke test, favicon (+attribution). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
51 lines
1.4 KiB
TOML
51 lines
1.4 KiB
TOML
[package]
|
|
name = "effectcraft-web"
|
|
description = "EffectCraft in the browser (wasm32): eframe web runner, in-memory files, browser file pickers and downloads, window.effectcraft API"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
publish = false
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[lib]
|
|
crate-type = ["cdylib", "rlib"]
|
|
|
|
# Everything is wasm32-only: on other targets this crate is empty (so `cargo test --workspace`
|
|
# and clippy stay cheap). Build with `cargo xtask web` (see docs/web.md).
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
effectcraft-engine = { workspace = true }
|
|
effectcraft-host = { workspace = true }
|
|
effectcraft-media = { workspace = true }
|
|
effectcraft-export = { workspace = true }
|
|
effectcraft-expr = { workspace = true }
|
|
effectcraft-ui-egui = { workspace = true }
|
|
egui = { workspace = true }
|
|
eframe = { workspace = true, features = ["default_fonts", "wgpu"] }
|
|
serde_json = { workspace = true }
|
|
log = { workspace = true }
|
|
# The wasm-bindgen CLI used by `cargo xtask web` must be exactly this version.
|
|
wasm-bindgen = "=0.2.129"
|
|
wasm-bindgen-futures = "0.4"
|
|
js-sys = "0.3"
|
|
web-sys = { version = "0.3", features = [
|
|
"Blob",
|
|
"BlobPropertyBag",
|
|
"CssStyleDeclaration",
|
|
"Document",
|
|
"Element",
|
|
"Event",
|
|
"EventTarget",
|
|
"File",
|
|
"FileList",
|
|
"HtmlAnchorElement",
|
|
"HtmlCanvasElement",
|
|
"HtmlElement",
|
|
"HtmlInputElement",
|
|
"Location",
|
|
"Url",
|
|
"UrlSearchParams",
|
|
"Window",
|
|
] }
|