# streamlit/streamlit

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/streamlit-streamlit).**

43,550 stars · 4,088 forks · Python · apache-2.0

## Links

- GitHub: https://github.com/streamlit/streamlit
- Homepage: https://streamlit.io
- awesome-repositories: https://awesome-repositories.com/repository/streamlit-streamlit.md

## Topics

`data-analysis` `data-science` `data-visualization` `deep-learning` `developer-tools` `machine-learning` `python` `streamlit`

## Description

Streamlit is a Python framework designed to transform data scripts into interactive web applications. It utilizes a reactive execution engine that automatically reruns scripts from top to bottom whenever a user interaction triggers a state change, ensuring the interface remains synchronized with the underlying data. By providing a declarative interface, it allows developers to build functional applications without requiring extensive knowledge of frontend web technologies.

The framework distinguishes itself through an identity-based widget reconciliation system that persists user input across script reruns, maintaining statefulness as long as a widget remains rendered. It features a file-system-based routing mechanism that automatically generates navigation paths based on directory structure, and a bidirectional WebSocket connection that streams updates between the Python backend and the browser. Developers can further extend the platform by integrating custom frontend components via a standardized message-passing bridge or by utilizing built-in memoization to cache function results for improved performance.

The platform provides a comprehensive suite of tools for managing application logic, including session state management, secure connection handling for external data sources, and user authentication. Developers can organize complex interfaces using a declarative layout engine that supports columns, tabs, and sidebars, while populating them with a library of pre-built widgets for data visualization, media display, and user input.

The project includes integrated testing utilities that allow developers to simulate user interactions and inspect application state programmatically. Applications can be deployed directly from source control to various cloud environments, with support for managed hosting and containerized configurations.

## Tags

### User Interface & Experience

- [Interactive Widgets](https://awesome-repositories.com/f/user-interface-experience/interactive-widgets.md) — Provides a comprehensive widget system for capturing user input and managing interactive state. ([source](https://docs.streamlit.io/develop/concepts/architecture/widget-behavior))
- [Input Controls](https://awesome-repositories.com/f/user-interface-experience/input-controls.md) — Offers a wide range of interactive widgets to capture user input and facilitate dynamic interaction. ([source](https://docs.streamlit.io/develop/api-reference))
- [Layout Engines](https://awesome-repositories.com/f/user-interface-experience/layout-engines.md) — Provides flexible layout containers like columns, tabs, and sidebars to structure application interfaces. ([source](https://docs.streamlit.io/develop/api-reference))
- [State Management](https://awesome-repositories.com/f/user-interface-experience/state-management.md) — Ensures statefulness of widgets across reruns to maintain user input and interaction context. ([source](https://docs.streamlit.io/develop/concepts/architecture/widget-behavior))
- [Component Libraries](https://awesome-repositories.com/f/user-interface-experience/component-libraries.md) — Offers a collection of pre-built interactive widgets to create functional user interfaces without custom frontend code.
- [Dynamic Content Streams](https://awesome-repositories.com/f/user-interface-experience/dynamic-content-streams.md) — Supports streaming data and text to the interface with dynamic effects for real-time updates. ([source](https://docs.streamlit.io/develop/api-reference))
- [User Interaction Patterns](https://awesome-repositories.com/f/user-interface-experience/user-interaction-patterns.md) — Provides a robust system for passing user information into backend code through interactive elements. ([source](https://docs.streamlit.io/develop/concepts/architecture/widget-behavior))
- [Status Indicators](https://awesome-repositories.com/f/user-interface-experience/status-indicators.md) — Provides visual feedback and notifications to keep users informed during long-running tasks. ([source](https://docs.streamlit.io/develop/api-reference))
- [Custom Components](https://awesome-repositories.com/f/user-interface-experience/custom-components.md) — Allows mounting custom frontend elements built with standard web languages to extend core application functionality. ([source](https://docs.streamlit.io/develop/api-reference))
- [Text Formatting Components](https://awesome-repositories.com/f/user-interface-experience/text-formatting-components.md) — Provides tools for styling text, code blocks, and decorative elements to improve interface readability. ([source](https://docs.streamlit.io/develop/api-reference))
- [URL State Synchronization](https://awesome-repositories.com/f/user-interface-experience/url-state-synchronization.md) — Allows syncing widget values with URL query parameters for shareable and bookmarkable application states. ([source](https://docs.streamlit.io/develop/concepts/architecture/widget-behavior))

### Web Development

- [Data Application Frameworks](https://awesome-repositories.com/f/web-development/data-application-frameworks.md) — Transforms data scripts into interactive web applications using a declarative interface and reactive execution model.
- [File-System Routing](https://awesome-repositories.com/f/web-development/file-system-routing.md) — Automatically generates navigation paths and page structures by mapping the directory layout of source files.
- [Component Extensions](https://awesome-repositories.com/f/web-development/component-extensions.md) — Supports extending application functionality through custom-built or third-party components. ([source](https://docs.streamlit.io/develop/concepts))
- [Navigation Systems](https://awesome-repositories.com/f/web-development/navigation-systems.md) — Organizes multipage applications by defining distinct routes and programmatically switching the active view. ([source](https://docs.streamlit.io/develop/api-reference))
- [Multipage Application Frameworks](https://awesome-repositories.com/f/web-development/multipage-application-frameworks.md) — Enables automated multipage application structure through simple directory-based configuration. ([source](https://docs.streamlit.io/develop/concepts))
- [Frontend Bridges](https://awesome-repositories.com/f/web-development/frontend-bridges.md) — Provides a standardized message-passing interface to extend native UI capabilities with custom web elements.

### Programming Languages & Runtimes

- [Runtime Environments](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-execution-environments/runtime-environments.md) — Reruns the entire application script from top to bottom whenever a user interaction triggers a state change.

### Software Engineering & Architecture

- [Execution Models](https://awesome-repositories.com/f/software-engineering-architecture/execution-models.md) — Defines the core execution and client-server model that powers interactive application updates. ([source](https://docs.streamlit.io/develop/concepts))
- [Memoization Caches](https://awesome-repositories.com/f/software-engineering-architecture/memoization-caches.md) — Stores function results in a persistent cache to prevent redundant computation during frequent script execution.
- [State Reconciliation](https://awesome-repositories.com/f/software-engineering-architecture/state-reconciliation.md) — Tracks widget state by assigning unique identifiers to elements to persist user input across script reruns.
- [Execution Flow Control](https://awesome-repositories.com/f/software-engineering-architecture/execution-flow-control.md) — Manages script progression using interactive modal dialogs, input forms, and manual commands. ([source](https://docs.streamlit.io/develop/api-reference))
- [Component Lifecycle Management](https://awesome-repositories.com/f/software-engineering-architecture/component-lifecycle-management.md) — Manages the lifecycle of widgets to ensure consistent identity and state across reruns. ([source](https://docs.streamlit.io/develop/concepts/architecture/widget-behavior))

### Data & Databases

- [Data Science Prototyping Tools](https://awesome-repositories.com/f/data-databases/data-science-prototyping-tools.md) — Transforms data analysis scripts into interactive web applications without requiring extensive frontend development knowledge.
- [Data Grids](https://awesome-repositories.com/f/data-databases/data-grids.md) — Enables interactive exploration and modification of structured datasets directly within the interface. ([source](https://docs.streamlit.io/develop/api-reference))
- [Data Application Hosting](https://awesome-repositories.com/f/data-databases/data-application-hosting.md) — Hosts data-driven tools within secure cloud platforms to leverage built-in access controls. ([source](https://docs.streamlit.io/deploy/snowflake))
- [Data Caching](https://awesome-repositories.com/f/data-databases/data-caching.md) — Stores temporary data, session variables, and URL parameters in a persistent local cache. ([source](https://docs.streamlit.io/develop/api-reference))
- [Session Management](https://awesome-repositories.com/f/data-databases/session-management.md) — Stores user-specific variables and widget values in a server-side dictionary to maintain application context.
- [Data Connectors](https://awesome-repositories.com/f/data-databases/data-connectors.md) — Links external databases and web services using secure connection methods while protecting sensitive credentials. ([source](https://docs.streamlit.io/develop/api-reference))

### DevOps & Infrastructure

- [Web Application Deployment](https://awesome-repositories.com/f/devops-infrastructure/web-application-deployment.md) — Publishes applications directly from source control repositories by automating the build process. ([source](https://docs.streamlit.io/deploy/streamlit-community-cloud))
- [Remote Application Hosting](https://awesome-repositories.com/f/devops-infrastructure/remote-application-hosting.md) — Launches applications in hosted environments by defining dependency requirements and managing secure credentials. ([source](https://docs.streamlit.io/deploy/concepts))
- [Cloud Infrastructure Deployment](https://awesome-repositories.com/f/devops-infrastructure/cloud-infrastructure-deployment.md) — Publishes applications to managed hosting services using containerization and orchestration tools. ([source](https://docs.streamlit.io/deploy/tutorials))

### Networking & Communication

- [State Synchronization](https://awesome-repositories.com/f/networking-communication/state-synchronization.md) — Streams UI updates and widget state changes between the backend and frontend via persistent bidirectional connections.

### Scientific & Mathematical Computing

- [Data Visualization Libraries](https://awesome-repositories.com/f/scientific-mathematical-computing/data-modeling-processing/data-visualization-libraries.md) — Renders various chart types to help users identify trends and patterns through visual representation. ([source](https://docs.streamlit.io/develop/api-reference))

### Testing & Quality Assurance

- [UI Automation](https://awesome-repositories.com/f/testing-quality-assurance/automation-interaction-tools/ui-automation.md) — Simulates a running application to programmatically interact with widgets and verify application state. ([source](https://docs.streamlit.io/develop/api-reference))
- [Testing Frameworks](https://awesome-repositories.com/f/testing-quality-assurance/software-testing/testing-frameworks.md) — Provides built-in support for automated testing of application interfaces and user interactions. ([source](https://docs.streamlit.io/develop/concepts))

### Business & Productivity Software

- [Internal Business Tooling](https://awesome-repositories.com/f/business-productivity-software/internal-business-tooling.md) — Streamlines the creation of custom business tools and dashboards for internal teams.

### Graphics & Multimedia

- [Media Management Tools](https://awesome-repositories.com/f/graphics-multimedia/media-processing-analysis/media-management-tools.md) — Supports embedding images, audio, video, and interactive media content into the application. ([source](https://docs.streamlit.io/develop/api-reference))
- [Visualization Frameworks](https://awesome-repositories.com/f/graphics-multimedia/visualization-mapping/visualization-frameworks.md) — Provides dynamic charts and tables that allow users to explore complex datasets through intuitive controls.

### Security & Cryptography

- [Secret Management](https://awesome-repositories.com/f/security-cryptography/secret-management.md) — Includes built-in mechanisms for securely managing and accessing application secrets and connection credentials. ([source](https://docs.streamlit.io/develop/concepts))
- [Authentication Strategies](https://awesome-repositories.com/f/security-cryptography/authentication-strategies.md) — Verifies user identity and retrieves profile information by handling login and logout processes. ([source](https://docs.streamlit.io/develop/api-reference))

### Development Tools & Productivity

- [Configuration Management](https://awesome-repositories.com/f/development-tools-productivity/configuration-management.md) — Offers flexible configuration options for server settings, client behavior, and visual styling. ([source](https://docs.streamlit.io/develop/concepts))
