Files
isokit/Cargo.toml
T
grabowski a202283a60
Deploy web Studio / deploy (push) Successful in 3m46s
Web performance: light animation, gestures on a compositor layer, no forced layouts
Measured with the new tools/bench_web.py on the web Studio's house demo, CPU slowed 6x:

- Idle: running CSS animations repainted the whole drawing every frame (99% of the main
  thread in a window). Animations now step on about ten times a second by default
  ("light", 5% idle); the new toolbar button switches light / smooth / off and the browser
  remembers it; [build] animation sets the default for built pages; view.animation().
  Pan and zoom gestures pause them. Status LEDs pause off-screen and with the rest now.
- Pan 28 -> 10 ms, zoom 69 -> 11 ms per step: gestures move the drawing as one compositor
  layer (transform) and set the viewBox once they end; --iso-k is set on the tags group
  only and only when it changes; the stage box is read once per frame.
- Hover 22 -> 15 ms per move: the tooltip is placed once per frame on its own layer and
  measured only when its text changes; the Studio's x/y readout updates ten times a second
  in a contained box; hover work in the Studio runs once per frame.
- Long object lists skip layout of rows out of sight (content-visibility).
- WASM built with opt-level 3: engine render 11.7 -> 9.4 ms for 10% more download.

Checks: Studio 102/102 (animation modes, pan as a layer, contained readout), web 87/87.
2026-10-24 20:46:35 +07:00

49 lines
1.3 KiB
TOML

[workspace]
resolver = "2"
members = [
"crates/isokit-core",
"crates/isokit-script",
"crates/isokit-theme",
"crates/isokit-project",
"crates/isokit-cli",
"crates/isokit-wasm",
]
[workspace.package]
version = "0.1.0"
edition = "2021"
license = "MIT"
authors = ["buildfor.life"]
repository = "https://git.b4l.co.th/B4L/isokit"
[workspace.dependencies]
isokit-core = { path = "crates/isokit-core" }
isokit-script = { path = "crates/isokit-script" }
isokit-theme = { path = "crates/isokit-theme" }
isokit-project = { path = "crates/isokit-project" }
serde = { version = "1", features = ["derive"] }
serde_json = "1"
toml = { version = "1", features = ["preserve_order"] }
rhai = { version = "1.27", default-features = true }
tiny_http = "0.12"
# the Studio's agent window reaches the language model through `isokit studio`
ureq = "3"
clap = { version = "4", features = ["derive"] }
anyhow = "1"
web-time = "1"
# keep in step with the wasm-bindgen CLI (tools/build_web.py checks)
wasm-bindgen = "=0.2.129"
[profile.release]
lto = "thin"
codegen-units = 4
# the web Studio's engine (tools/build_web.py): fast over small (opt-level 3 renders
# about a fifth quicker than "s" for a tenth more download, 0.9 MB gzipped)
[profile.web]
inherits = "release"
opt-level = 3
lto = true
codegen-units = 1
panic = "abort"