Hey, Streamlit community! 👋
Say hello to some sweet improvements around memory usage and the introduction of semantic versioning!
🧠 Memory improvements
Ever had a Streamlit app use too much memory? Rejoice! We made some important changes to shrink memory usage. This affects all Streamlit apps, especially the ones that have run for long periods of time and have many viewers. This change also prevents many resource-limit errors on Streamlit Cloud (the "Argh" error page you might've seen here and there) and builds on top of other memory improvements from version 0.82.0.
For example, here is one of our internal Streamlit app's memory usage. The colored lines on the left are using older Streamlit versions. The blue line on the right is using the 1.1.0 release.
Update the Streamlit version of all your apps on Streamlit Cloud to 1.1.0 to enjoy these improvements!
🧬 Semantic versioning
With the recent release of Streamlit 1.0, we’re also committing to following a loose variant of semantic versioning. This fulfills our promise to keep the API stable so you can confidently build production-quality apps.
- All changes introduced in minor versions will be additive. Breaking changes will only be introduced in major versions, while patch releases will be for bug fixes.
- Whenever possible, a deprecation path will be provided rather than an outright breaking change. We’ll introduce deprecations in minor versions.
There are a few caveats, though:
- Features released with the
experimental_prefix are excluded from semantic versioning because they’re prototype features that need community input and iteration.
st.session_statehas a few minor issues left. While we're working on resolving them, this feature might see some updates outside semantic versioning in the next quarter.
- UI changes are not considered breaking changes as long as apps still work.
- Changes to CSS class names are not considered breaking changes.
🎒 Other notable updates
- ♻️ Apps now automatically rerun when the content of
secrets.tomlchanges. Before this, you had to refresh the page manually.
- 🔗 We redirected documentation links (e.g., in exceptions) to our brand-new docs site.
- 🐛 Bug fix: Range slider can now be initialized with the session state API (#3586)
- 🐞 Bug fix: Charts now automatically refresh when using
🏁 Wrapping up
Let us know in the comments below if you have any questions. We're looking forward to hearing what you think about this release!
Happy Streamlit-ing. 🎈