Sycamore – next gen Rust UI library powered by fine-grained reactivity
Fine-grained reactivity in Rust when Leptos and Dioxus already dominate.
Pure Python Web Framework. Streamlit simplicity, no reruns.
Streamlit's simplicity minus the full-script reruns—fine-grained reactivity via contextvars.
Python developers building web UIs, data dashboards, and internal tools
Streamlit · NiceGUI · Dash
I am a developer working on open source in my spare time.
I built Violit because I love the simplicity of Streamlit but hit performance bottlenecks due to its execution model (re-running the entire script on every interaction). I also explored NiceGUI, which is excellent, but found it difficult to customize beyond its default Material Design look.
My goal is to empower Python developers to build beautiful, fast full-stack applications without needing React or a separate frontend team. While it is still early days, I hope Violit can eventually serve as a pure-Python alternative to complex stacks like Django+React for many use cases.
------------------------------------------------
Key Technical Details:
- Fine-grained Reactivity: Unlike Streamlit, Violit uses contextvars to track dependencies. Updates are surgical—modifying only the specific DOM node that needs to change, rather than re-executing the whole script.
- Hybrid Engine: It supports both WebSocket (for low latency) and HTMX (Lite mode) depending on your needs.
- Styling & Theming: I wanted to prioritize aesthetics. It moves away from rigid Material Design, supporting easier custom theming (currently ships with +20 presets).
- Multi-Platform: Apps can run as a web service or be packaged as a desktop app using pywebview without code changes.
It is currently in alpha (v0.1.12). I’ve included a "Blog Construction" example in the repo to demonstrate that it can handle more than just simple dashboards.I’m curious to hear your thoughts on this architecture.
▶ Repo: https://github.com/violit-dev/violit
▶ Blog Example: https://github.com/violit-dev/violit/tree/main/examples/2_vi...
Fine-grained reactivity in Rust when Leptos and Dioxus already dominate.
Mithril fork with signals and SSR, but generated largely by Cursor AI—production readiness unclear.
No virtual DOM and decorators over JSX—but Solid.js, Qwik, and Svelte already did this better.
Compiler-native IR binding skips the VDOM diff loop entirely for direct DOM updates.
Zero-build reactive framework, but the function-based JSX alternative feels verbose.
New language, not framework: compiles to WASM with no virtual DOM, 40% smaller than Svelte.