Data apps comparison for: Streamlit, Panel and Dash.
This repository contains a comparative analysis of three popular Python frameworks for creating interactive web applications for data visualization and analysis: Streamlit, Panel, and Dash. We aim to explore the main differences and features of these frameworks to help you choose the one that best suits your needs.
Streamlit is a Python library designed for creating interactive web applications for data visualization and machine learning. It is served via Tornado.
Dash is a Python framework that enables the creation of interactive web applications for data visualization and analytics. It is built on top of Flask and Plotly.
Panel is a Python library within the HoloViz ecosystem, used for creating interactive web applications for data visualization, analysis, and modeling. Panel is built on top of Bokeh and is served via Tornado.
We have also written a detailed blog post that describes these technologies and provides insights into their strengths and use cases. You can read the blog post on our blog.
Below are screenshots of each of the three applications for a quick overview:
docker
docker-compose
- Create a
.env
file based on.env_example
. - Run the command
make up
. - Access the applications using the following URLs:
Streamlit
: localhost:8001Dash
: localhost:8002Panel
: localhost:8003
make up
- use to run all applicationsmake down
- use to stop all applicationsmake build
- use to manually build all applicationsmake streamlit
- use to enter intostreamlit_app
docker container. For debugging purposes.make streamlit-build
- use to build Streamlit app.make streamlit-run
- use to run Streamlit app.make dash
- use to enter intodash_app
docker container. For debugging purposes.make dash-build
- use to build Dash app.make dash-run
- use to run Dash app.make panel
- use to enter intopanel_app
docker container. For debugging purposes.make panel-build
- use to build Panel app.make panel-run
- use to run Panel app.make tests-build
- use to build Docker image for E2E testsmake tests
- use to run Docker container for E2E testsmake tests-run
- use to run all E2E tests
- Install
pre-commit
(link)
To evaluate and test all three data apps, we have employed Playwright
, a powerful tool for crafting end-to-end (E2E) tests that cover essential aspects of the applications.
- Use the command
make up
to run all the required services - Execute the command
make tests-run
to run all E2E tests