2020 release notes

This page contains release notes for Streamlit versions released in 2020. For the latest version of Streamlit, see Release notes.

Release date: December 17, 2020

Notable Changes

  • 🐍 Streamlit can now be installed on Python 3.9. Streamlit components are not yet compatible with Python 3.9 and must use version 3.8 or earlier.
  • 🧱 Streamlit Components now allows same origin, enabling features provided by the browser such as a webcam component.
  • πŸ™ Fix Streamlit sharing deploy experience for users running on Git versions 2.7.0 or earlier.
  • 🧰 Handle unexpected closing of uploaded files for st.file_uploader.

Release date: December 2, 2020

Notable Changes

  • 🌈 Establish a framework for theming and migrate existing components.
  • πŸ“± Improve the sidebar experience for mobile devices.
  • 🧰 Update st.file_uploader to reduce reruns.

Release date: November 11, 2020

Notable Changes

  • πŸ“ Updated st.file_uploader to automatically reset buffer on app reruns.
  • πŸ“Š Optimize the default rendering of charts and reduce issues with the initial render.

Release date: October 28, 2020

Notable Changes

  • πŸ§ͺ st.set_page_config and st.color_picker have now been moved into the Streamlit namespace. These will be removed from beta January 28th, 2021. Learn more about our beta process here.
  • πŸ“Š Improve display of bar charts for discrete values.

Release date: October 15, 2020

Highlights:

  • 🎁 Introducing Streamlit sharing, the best way to deploy, manage, and share your public Streamlit appsβ€”for free. Read more about it on our blog post or sign up here!
  • Added st.experimental_rerun to programatically re-run your app. Thanks SimonBiggs!

Notable Changes

  • πŸ“Ή Better support across browsers for start and stop times for st.video.
  • πŸ–Ό Bug fix for intermittently failing media files
  • πŸ“¦ Bug fix for custom components compatibility with Safari. Make sure to upgrade to the latest streamlit-component-lib.

Release date: October 8, 2020

Highlights:

  • βŒ— Introducing new layout options for Streamlit! Move aside, vertical layout. Make a little space for... horizontal layout! Check out our blog post.
  • πŸ’Ύ File uploader redesigned with new functionality for multiple files uploads and better support for working with uploaded files. This may cause breaking changes. Please see the new api in our documentation

Notable Changes

  • 🎈 st.balloon has gotten a facelift with nicer balloons and smoother animations.
  • 🚨 Breaking Change: Following the deprecation of st.deck_gl_chart in January 2020, we have now removed the API completely. Please use st.pydeck_chart instead.
  • 🚨 Breaking Change: Following the deprecation of width and height for st.altair_chart, st.graphviz_chart, st.plotly_chart, and st.vega_lite_chart in January 2020, we have now removed the args completely. Please set the width and height in the respective charting library.

Release date: September 16, 2020

Highlights:

  • 🦷 Streamlit Components can now return bytes to your Streamlit App. To create a component that returns bytes, make sure to upgrade to the latest streamlit-component-lib.

Notable Changes

  • πŸ“ˆ Deprecation warning: Beginning December 1st, 2020 st.pyplot() will require a figure to be provided. To disable the deprecation warning, please set deprecation.showPyplotGlobalUse to False
  • 🎚 st.multiselect and st.select are now lightning fast when working with large datasets. Thanks masa3141!

Release date: September 1, 2020

Highlights:

  • ✏️ st.write is now available for use in the sidebar!
  • 🎚 A slider for distinct or non-numerical values is now available with st.select_slider.
  • βŒ— Streamlit Components can now return dataframes to your Streamlit App. Check out our SelectableDataTable example.
  • πŸ“¦ The Streamlit Components library used in our Streamlit Component template is now available as a npm package (streamlit-component-lib) to simplify future upgrades to the latest version. Existing components do not need to migrate.

Notable Changes

  • 🐼 Support StringDtype from pandas version 1.0.0
  • 🧦 Support for running Streamlit on Unix sockets

Release date: August 12, 2020

Highlights:

  • βš™οΈ Ability to set page title, favicon, sidebar state, and wide mode via st.beta_set_page_config(). See our documentation for details.
  • πŸ“ Add stateful behaviors through the use of query parameters with st.experimental_set_query_params and st.experimental_get_query_params. Thanks @zhaoooyue!
  • 🐼 Improved pandas dataframe support for st.radio, st.selectbox, and st.multiselect.
  • πŸ›‘ Break out of your Streamlit app with st.stop.
  • πŸ–Ό Inline SVG support for st.image.

Callouts:

  • 🚨Deprecation Warning: The st.image parameter format has been renamed to output_format.

Release date: July 23, 2020

Highlights:

  • πŸ“Š Default matplotlib to display charts with a tight layout. To disable this, set bbox_inches to None, inches as a string, or a Bbox
  • πŸ—ƒ Deprecation warning for automatic encoding on st.file_uploader
  • πŸ™ˆ If gatherUserStats is False, do not even load the Segment library. Thanks @tanmaylaud!

Release date: July 13, 2020

Highlights:

  • 🧩 Support for Streamlit Components!!! See documentation for more info.
  • πŸ•— Support for datetimes in st.slider. And, of course, just like any other value you use in st.slider, you can also pass in two-element lists to get a datetime range slider.

Release date: June 21, 2020

Highlights:

  • πŸ“¨ Ability to turn websocket compression on/off via the config option server.enableWebsocketCompression. This is useful if your server strips HTTP headers and you do not have access to change that behavior.
  • πŸ—οΈ Out-of-the-box support for CSRF protection using the Cookie-to-header token technique. This means that if you're serving your Streamlit app from multiple replicas you'll need to configure them to to use the same cookie secret with the server.cookieSecret config option. To turn XSRF protection off, set server.enableXsrfProtection=false.

Notable bug fixes:

  • πŸ–ΌοΈ Added a grace period to the image cache expiration logic in order to fix multiple related bugs where images sent with st.image or st.pyplot were sometimes missing.

Release date: June 2, 2020

Highlights:

  • πŸ“… Support for date ranges in st.date_picker. See docs for more info, but the TLDR is: just pass a list/tuple as the default date and it will be interpreted as a range.
  • πŸ—£οΈ You can now choose whether st.echo prints the code above or below the output of the echoed block. To learn more, refer to the code_location argument in the docs.
  • πŸ“¦ Improved @st.cache support for Keras models and Tensorflow saved_models.

Release date: May 18, 2020

Highlights:

  • ↕️ Ability to set the height of an st.text_area with the height argument (expressed in pixels). See docs for more.
  • πŸ”‘ Ability to set the maximimum number of characters allowed in st.text_area or st.text_input. Check out the max_chars argument in the docs.
  • πŸ—ΊοΈ Better DeckGL support for the H3 geospatial indexing system. So now you can use things like H3HexagonLayer in st.pydeck_chart.
  • πŸ“¦ Improved @st.cache support for PyTorch TensorBase and Model.

Release date: May 05, 2020

Highlights:

  • 🎨 New color-picker widget! Use it with st.beta_color_picker()
  • πŸ§ͺ Introducing st.beta_* and st.experimental_* function prefixes, for faster Streamlit feature releases. See docs for more info.
  • πŸ“¦ Improved @st.cache support for SQL Alchemy objects, CompiledFFI, PyTorch Tensors, and builtins.mappingproxy.

Release date: April 22, 2020

Highlights:

  • πŸ’Ό Made st.selectbox filtering case-insensitive.
  • ㈬ Better support for Tensorflow sessions in @st.cache.
  • πŸ“Š Changed behavior of st.pyplot to auto-clear the figure only when using the global Matplotlib figure (i.e. only when calling st.pyplot() rather than st.pyplot(fig)).

Release date: March 26, 2020

Highlights:

  • ⏲️ Ability to set expiration options for @st.cache'ed functions by setting the max_entries and ttl arguments. See docs.
  • πŸ†™ Improved the machinery behind st.file_uploader, so it's much more performant now! Also increased the default upload limit to 200MB (configurable via server.max_upload_size).
  • πŸ”’ The server.address config option now binds the server to that address for added security.
  • πŸ“„ Even more details added to error messages for @st.cache for easier debugging.

Release date: February 15, 2020

Highlights:

  • πŸ“„ Improved error messages for st.cache. The errors now also point to the new caching docs we just released. Read more here!

Breaking changes:

  • 🐍 As announced last month, Streamlit no longer supports Python 2. To use Streamlit you'll need Python 3.5 or above.

Release date: February 4, 2020

Highlights:

  • πŸ“Ί Ability to record screencasts directly from Streamlit! This allows you to easily record and share explanations about your models, analyses, data, etc. Just click ☰ then "Record a screencast". Give it a try!

Release date: January 29, 2020

Highlights:

  • ⌨️ Support for password fields! Just pass type="password" to st.text_input().

Notable fixes:

  • ✳️ Numerous st.cache improvements, including better support for complex objects.
  • πŸ—£οΈ Fixed cross-talk in sidebar between multiple users.

Breaking changes:

  • If you're using the SessionState hack Gist, you should re-download it! Depending on which hack you're using, here are some links to save you some time:

Release date: January 14, 2020

Highlights:

  • πŸ—ΊοΈ Support for all DeckGL features! Just use Pydeck instead of st.deck_gl_chart. To do that, simply pass a PyDeck object to st.pydeck_chart, st.write, or magic.

    Note that as a preview release things may change in the near future. Looking forward to hearing input from the community before we stabilize the API!

    The goals is for this to replace st.deck_gl_chart, since it is does everything the old API did and much more!

  • πŸ†• Better handling of Streamlit upgrades while developing. We now auto-reload the browser tab if the app it is displaying uses a newer version of Streamlit than the one the tab is running.

  • πŸ‘‘ New favicon, with our new logo!

Notable fixes:

  • Magic now works correctly in Python 3.8. It no longer causes docstrings to render in your app.

Breaking changes:

  • Updated how we calculate the default width and height of all chart types. We now leave chart sizing up to your charting library itself, so please refer to the library's documentation.

    As a result, the width and height arguments have been deprecated from most chart commands, and use_container_width has been introduced everywhere to allow you to make charts fill as much horizontal space as possible (this used to be the default).

forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.