FAQ
Frequently asked questions.
General
What is Presentar?
A WASM-first visualization framework built on the Sovereign AI Stack. It eliminates Python/CUDA dependencies for self-hosted AI workloads.
Why not React/Vue/Svelte?
- No JavaScript runtime overhead
- Type-safe at compile time
- Deterministic rendering
- Zero-dependency testing
Why not Streamlit/Gradio?
- No Python GIL
- 60fps GPU rendering
- Type safety
- Deterministic tests
Technical
What's the minimum Rust version?
Rust 1.75+ with wasm32-unknown-unknown target.
How do I add a custom widget?
Implement the Widget trait. See Custom Widgets.
How do I test widgets?
Use the zero-dependency test harness:
let harness = Harness::new(widget);
harness.assert_exists("[data-testid='btn']");
What's the bundle size?
Approximately 100KB for a basic app.
How do I deploy?
Build to WASM and serve statically:
cargo build --target wasm32-unknown-unknown --release
Testing
Why no Playwright/Selenium?
Zero external dependencies policy. We build our own test harness in pure Rust.
How do I run tests?
make test # All tests
make test-fast # Unit tests only
How do I do visual regression?
Snapshot::assert_match("name", &screenshot, 0.001);
Performance
What's the frame budget?
16ms for 60fps. Typical paint is <8ms.
How do I optimize?
- Use layout caching
- Minimize draw commands
- Avoid deep nesting