5 ms·
Looks cool. How do you see this differing from streamlit? https://streamlit.io/ https://streamlit.io/
by ipython 3y ago
Looks cool. How do you see this differing from streamlit? https://streamlit.io/ https://streamlit.io/
- mondrian 3y agoThanks! Streamlit is really cool and is obviously mature and successful. It seems to be influenced by Jupyter notebooks and data science practice. It aims to be like Jupyter notebooks but in code? Correct me if I'm wrong. Hyperdiv is a generic framework with unrestricted layouts (but you can use a template if you want), and a component architecture where all components, whether UI components or internal state, are fundamentally similar and expose stateful props.
- blshao84 3y agoWhat bout Dash? It's also a framework to support UI dev in python. Unlike streamilit, Dash is more for general purpose ui development afaik.
- mondrian 3y agoDash is similar in spirit, as a "build web UIs with Python" framework. Dash seems more similar to nicegui (https://nicegui.io https://nicegui.io) architecturally than to Hyperdiv. Like nicegui, it builds a static dom that is then mutated via callbacks or data bindings. By contrast, Hyperdiv lays out UI declaratively based on state, and when state changes, the app re-runs, generating an updated UI. Streamlit and Hyperdiv seem to work similarly, though I'm not sure how Streamlit handles state and state-based layout.
- jerpint 3y agoStreamlit reloads and runs the entire app on every change which can make it very slow for data intensive tasks and is hard to work with for complex UIs in my experience
- iamcreasy 3y agoLooks really cool. How easy is it to create custom component or to add custom hooks to existing UI behaviours?
- mondrian 3y agoThanks! Currently you can’t create a new “base” component with custom html/javascript, short of adding it to the hyperdiv source code. I’m working on adding third party component support.
- iamcreasy 3y agoThanks! I am curious to know why you choose to go with custom communication protocol instead of having a REST endpoint.