So far on my experience streamlit is a powerful tool for data visualisation, quick dashboarding. The api design is very intuitive and very easy to get started. I say powerful because in few lines of code you can have dashboard with great interaction.
- Really great for quick Dashboard prototyping and interaction.
- Has a wide range of tools integration.
- Easy to convert output any tool you are familiar, to an interactive dashboard using streamlit
- Pretty lighweight both as library and to use !! :winking face
- Design decisions like caching, dynamic content rendering has made streamlit standout from others.
- It is not for full fledged web app developement.
- Security, authentication, authorisation, scaling is out of scope for streamlit.
- These can be handled separately, if you still want to use steramlit.
These are my experience of using both tools. For more detailed comparision you can refer here which I think is little biased towards Dash enterprise
Dimension | Dash | Streamlit |
---|---|---|
Use case | Dash-board + Web app | Dashboard |
Maturity | 2017 | 2019 |
Popularity | High | ~ High and Catching up |
Learning Curve | Moderate - High | ZERO |
Features | Both are Comparable | |
Speed | Decreases with data size | Better (because of Caching) |
Consistency | Can be inconsistent at times | Highly accurate and consistent |
Customisability | High | Low - Moderate |
Tool integration | Plotly, Flask | ~ Everything |
Backend | Flask | Tornado |
Activate your python virtual env. Then
pip install requirements.txt
streamlit run src/numeric.py