Hello there ๐Ÿ‘‹

Thanks for stopping by! We use cookies to help us understand how you interact with our website.

By clicking โ€œAccept allโ€, you consent to our use of cookies. For more information, please see our privacy policy.

2022 release notes

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

Release date: December 14, 2022

Highlights

  • ๐Ÿ‘ฉโ€๐ŸŽจ Introducing a new Streamlit theme for Altair, Plotly, and Vega-Lite charts! Check out our blog post for more information.
  • ๐ŸŽจ Streamlit now supports colored text in all commands that accept Markdown, including st.markdown, st.header, and more. Learn more in our documentation.

Notable Changes

  • ๐Ÿ” Functions cached with st.experimental_memo or st.experimental_singleton can contain Streamlit media elements and forms.
  • โ›„ All Streamlit commands that accept pandas DataFrames as input also support Snowpark and PySpark DataFrames.
  • ๐Ÿท st.checkbox and st.metric can customize how to hide their labels with the label_visibility parameter.

Other Changes

  • ๐Ÿ—บ๏ธ st.map improvements: support for upper case columns and better exception messages (#5679, #5792).
  • ๐Ÿž Bug fix: st.plotly_chart respects the figure's height attribute and the use_container_width parameter (#5779).
  • ๐Ÿชฒ Bug fix: all commands with the icon parameter such as st.error, st.warning, etc, can contain emojis with variant selectors (#5583).
  • ๐Ÿ Bug fix: prevent st.camera_input from jittering when resizing the browser window (#5661).
  • ๐Ÿœ Bug fix: update exception layout to avoid overflow of stack traces (#5700).

Release date: November 17, 2022

Notable Changes

  • ๐Ÿ’… Widget labels can contain inline Markdown. See our docs and demo app for more info.
  • ๐ŸŽต st.audio now supports playing audio data passed in as NumPy arrays with the keyword-only sample_rate parameter.
  • ๐Ÿ” Functions cached with st.experimental_memo or st.experimental_singleton can contain Streamlit widgets using the experimental_allow_widgets parameter. This allows caching checkboxes, sliders, radio buttons, and more!

Other Changes

  • ๐Ÿ‘ฉโ€๐ŸŽจ Design tweak to prevent jittering in sliders (#5612).
  • ๐Ÿ› Bug fix: links in headers are red, not blue (#5609).
  • ๐Ÿž Bug fix: properly resize Plotly charts when exiting fullscreen (#5645).
  • ๐Ÿ: Bug fix: don't accidentally trigger st.balloons and st.snow (#5401).

Release date: October 27, 2022

Highlights

  • ๐ŸŽจ st.button and st.form_submit_button support designating buttons as "primary" (for additional emphasis) or "secondary" (for normal buttons) with the type keyword-only parameter.

Notable Changes

  • ๐Ÿค st.multiselect has a keyword-only max_selections parameter to limit the number of options that can be selected at a time.
  • ๐Ÿ“„ st.form_submit_button now has the disabled parameter that removes interactivity.

Other Changes

  • ๐Ÿ“ st.dataframe and st.table accept categorical intervals as input (#5395).
  • โšก Performance improvements to Plotly charts (#5542).
  • ๐Ÿชฒ Bug fix: st.download_button supports non-latin1 characters in filenames (#5465).
  • ๐Ÿž Bug fix: Allow st.image to render a local GIF as a GIF, not as a static PNG (#5438).
  • ๐Ÿ“ฑ Design tweaks to the sidebar in multipage apps (#5538, #5445, #5559).
  • ๐Ÿ“Š Improvements to the axis configuration for built-in charts (#5412).
  • ๐Ÿ”ง Memo and singleton improvements: support text values for show_spinner, use datetime.timedelta objects as ttl parameter value, properly hash PIL images and Enum classes, show better error messages when returning unevaluated dataframes (#5447, #5413, #5504, #5426, #5515).
  • ๐Ÿ” Zoom buttons in maps created with st.map and st.pydeck_chart use light or dark style based on the app's theme (#5479).
  • ๐Ÿ—œ Websocket headers from the current session's incoming WebSocket request can be obtained from a new "internal" (i.e.: subject to change without deprecation) API (#5457).
  • ๐Ÿ“ Improve the text that gets printed when you first install and use Streamlit (#5473).

Release date: September 22, 2022

Notable Changes

  • ๐Ÿท Widgets can customize how to hide their labels with the label_visibility parameter.
  • ๐Ÿ” st.map adds zoom buttons to the map by default.
  • โ†”๏ธ st.dataframe supports the use_container_width parameter to stretch across the full container width.
  • ๐Ÿช„ Improvements to st.dataframe sizing: Column width calculation respects column headers, supports double click between column headers to autosize, better fullscreen support, and fixes the issue with the width parameter.

Other Changes

  • โŒจ๏ธ st.time_input allows for keyboard-only input (#5194).
  • ๐Ÿ’ฟ st.memo will warn the user when using ttl and persist keyword argument together (#5032).
  • ๐Ÿ”ข st.number_input returns consistent type after rerun (#5359).
  • ๐Ÿš’ st.sidebar UI fixes including a fix for scrollbars in Firefox browsers (#5157, #5324).
  • ๐Ÿ‘ฉโ€๐Ÿ’ป Improvements to usage metrics to guide API development.
  • โœ๏ธ More type hints! (#5191, #5192, #5242, #5243, #5244, #5245, #5246) Thanks harahu!

Release date: August 11, 2022

Highlights

  • ๐Ÿ“Š Built-in charts (e.g. st.line_chart) get a brand-new look and parameters x and y! Check out our blog post for more information.

Notable Changes

  • โฏ Functions cached with st.experimental_memo or st.experimental_singleton can now contain static st commands. This allows caching text, charts, dataframes, and more!
  • โ†”๏ธ The sidebar is now resizable via drag and drop.
  • โ˜Ž๏ธ st.info, st.success, st.error, and st.warning got a redesign and have a new keyword-only parameter: icon.

Other Changes

  • ๐ŸŽš๏ธ st.select_slider correctly handles all floats now (#4973, #4978).
  • ๐Ÿ”ข st.multi_select can take values from enums (#4987).
  • ๐ŸŠ st.slider range values can now be set through st.session_state (#5007).
  • ๐ŸŽจ st.progress got a redesign (#5011, #5086).
  • ๐Ÿ”˜ st.radio better deals with list-like dataframes (#5021).
  • ๐Ÿงžโ€โ™‚๏ธ st.cache properly handles JSON files now (#5023).
  • โš“๏ธ Headers render markdown now when the anchor parameter is set (#5038).
  • ๐Ÿ—ป st.image can now load SVGs from Inkscape (#5040).
  • ๐Ÿ—บ๏ธ st.map and st.pydeck_chart use light or dark style based on the app's theme (#5074, #5108).
  • ๐ŸŽˆ Clicks on elements below st.balloons and st.snow don't get blocked anymore (#5098).
  • ๐Ÿ” Embedded apps have lower top padding (#5111).
  • ๐Ÿ’… Adjusted padding and alignment for widgets, charts, and dataframes (#4995, #5061, #5081).
  • โœ๏ธ More type hints! (#4926, #4932, #4933)

Release date: July 14, 2022

Highlights

  • ๐Ÿ—‚ Introducing st.tabs to have tab containers in your app. See our documentation on how to use this feature.

Notable Changes

  • โ„น๏ธ st.metric supports tooltips with the help keyword parameter.
  • ๐Ÿš‡ st.columns supports setting the gap size between columns with the gap keyword parameter.

Other Changes

  • ๐Ÿ’… Design tweaks to st.selectbox, st.expander, st.spinner (#4801).
  • ๐Ÿ“ฑ The sidebar will close when users select a page from the navigation menu on mobile devices (#4851).
  • ๐Ÿง  st.memo supports dataclasses! (#4850)
  • ๐ŸŽ Bug fix for a race condition that destroyed widget state with rapid interaction (#4882).
  • ๐Ÿ“ st.table presents overflowing content to be scrollable when placed inside columns and expanders (#4934).
  • ๐Ÿ Types: More updated type annotations across Streamlit! (#4808, #4809, #4856)

Release date: June 2, 2022

Highlights

  • ๐Ÿ“– Introducing native support for multipage apps! Check out our blog post and try out our new streamlit hello.

Notable Changes

  • โœจ st.dataframe has been redesigned.
  • ๐Ÿ”˜ st.radio has a horizontal keyword-only parameter to display options horizontally.
  • โš ๏ธ Streamlit Community Cloud will support richer exception formatting.
  • ๐Ÿ‚ Get user information on private apps using st.experimental_user.

Other Changes

Release date: May 4, 2022

Notable Changes

  • ๐Ÿช— st.json now supports a keyword-only argument, expanded on whether the JSON should be expanded by default (defaults to True).
  • ๐Ÿƒโ€โ™€๏ธ More performance improvements from reducing redundant work each script run.

Other Changes

  • ๐Ÿ‡ Widgets when disabled is set/unset will maintain its value (#4527).
  • ๐Ÿงช Experimental feature to increase the speed of reruns using configuration runner.fastReruns. See #4628 for the known issues in enabling this feature.
  • ๐Ÿ—บ๏ธ DataFrame timestamps support UTC offset (in addition to time zone notation) (#4669).

Release date: March 24, 2022

Notable Changes

  • ๐Ÿƒโ€โ™€๏ธ Dataframes should see performance improvements (#4463).

Other Changes

  • ๐Ÿ•ฐ st.slider handles timezones better by removing timezone conversions on the backend (#4348).
  • ๐Ÿ‘ฉโ€๐ŸŽจ Design improvements to our header (#4496).

Release date: March 3, 2022

Highlights

  • Introducing st.snow, celebrating our acquisition by Snowflake! See more information in our blog post.

Release date: Feb 24, 2022

Other Changes

  • ๐Ÿ—œ WebSocket compression is now disabled by default, which will improve CPU and latency performance for large dataframes. You can use the server.enableWebsocketCompression configuration option to re-enable it if you find the increased network traffic more impactful.
  • โ˜‘๏ธ ๐Ÿ”˜ Radio and checkboxes improve focus on Keyboard navigation (#4308).

Release date: Jan 27, 2022

Notable Changes

  • ๐ŸŒŸ Favicon defaults to a PNG to allow for transparency (#4272).
  • ๐Ÿšฆ Select Slider Widget now has the disabled parameter that removes interactivity (completing all of our widgets) (#4314).

Other Changes

  • ๐Ÿ”ค Improvements to our markdown library to provide better support for HTML (specifically nested HTML) (#4221).
  • ๐Ÿ“– Expanders maintain their expanded state better when multiple expanders are present (#4290).
  • ๐Ÿ—ณ Improved file uploader and camera input to call its on_change handler only when necessary (#4270).

Release date: Jan 13, 2022

Highlights

  • ๐Ÿ“ธ Introducing st.camera_input for uploading images straight from your camera.

Notable Changes

  • ๐Ÿšฆ Widgets now have the disabled parameter that removes interactivity.
  • ๐Ÿšฎ Clear st.experimental_memo and st.experimental_singleton programmatically by using the clear() method on a cached function.
  • ๐Ÿ“จ Developers can now configure the maximum size of a message to accommodate larger messages within the Streamlit application. See server.maxMessageSize.
  • ๐Ÿ We formally added support for Python 3.10.

Other Changes

  • ๐Ÿ˜ตโ€๐Ÿ’ซ Calling str or repr on threading.current_thread() does not cause a RecursionError (#4172).
  • ๐Ÿ“น Gracefully stop screencast recording when user removes permission to record (#4180).
  • ๐ŸŒ‡ Better scale images by using a higher-quality image bilinear resampling algorithm (#4159).
forum

Still have questions?

Our forums are full of helpful information and Streamlit experts.