Streamlit
Streamlit is an open-source Python library that makes it easy to build beautiful custom web-apps for machine learning and data science.
Deploying
Streamlit apps can be deployed with the rsconnect-python
package.
For Streamlit apps, the entrypoint is the name of the Python file containing your app. For example, if your app’s source file is named main.py
, use:
rsconnect deploy streamlit \
-n <saved server name> \
--entrypoint \
main.py ...
Example apps
There are some Streamlit example apps available from the Streamlit developers:
To deploy one of these examples, first clone the repository:
git clone https://github.com/streamlit/<app-name>
Install any required dependencies. Then, test the app locally:
streamlit run <app-name>/streamlit_app.py
Then deploy to Posit Connect:
rsconnect deploy streamlit \
-n <saved server name> \
--entrypoint streamlit_app.py \
<app-name>/
User meta-data
This example requires streamlit >= 1.37
import json
import streamlit as st
def get_user_info():
= st.context.headers.get("Rstudio-Connect-Credentials")
user_info_json if user_info_json is None:
return None
return json.loads(user_info_json)
def get_username():
= get_user_info()
user_info if user_info is None:
return None
return user_info.get("user")
"Username: " + get_username()) st.write(
User and group uniqueness
Most environments have unique usernames where each user
identifies a single user and groups
the name of the groups the user is a member of.
However, in large organizations with hundreds of users and groups, this may not be true. See the Admin Guide sections Credentials for Content for more information.
Limitations
Version compatibility
- Posit Connect requires Streamlit v0.56.1 or higher.
Different versions of Streamlit have different Python version requirements. Notably, Python 3.9.7 is not supported for many versions of Streamlit. Check the Streamlit requirements against the version(s) of Python available on your Connect server if you encounter deployment errors.
Bokeh compatibility
- Streamlit versions starting with 0.57 require Bokeh 2.0 or higher.
- Streamlit versions prior to 0.57 require Bokeh 1.4.
- Bokeh charts embedded within Streamlit can use Javascript callback functions, but Python callbacks from Bokeh are not supported by Streamlit.
File uploads
Streamlit applications may encounter problems processing large file uploads (streamlit/streamlit#904, streamlit/streamlit#9218).
If you encounter issues with large file uploads, consider alternative approaches for transferring data to your Streamlit application. For example, consider hosting the dataset at an external URL and providing this URL as an input parameter.