# pywebio/pywebio

**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/pywebio-pywebio).**

4,817 stars · 387 forks · Python · MIT

## Links

- GitHub: https://github.com/pywebio/PyWebIO
- Homepage: https://pywebio.readthedocs.io
- awesome-repositories: https://awesome-repositories.com/repository/pywebio-pywebio.md

## Topics

`pywebio`

## Description

PyWebIO is a Python web application framework and script-based UI library that allows the construction of interactive web interfaces without writing HTML, CSS, or JavaScript. It treats the web browser as a rich terminal, translating Python function calls into UI elements and capturing user input through a synchronous request-response loop.

The framework functions as an asynchronous web app server that executes user sessions as coroutines to handle multiple concurrent interactions on a single thread. It also serves as a data visualization interface, enabling the direct rendering of interactive charts and graphs from external libraries within the browser.

The system covers a broad range of deployment and configuration capabilities, including standalone web service deployment, multi-application hosting, and exports for WSGI and ASGI servers. It provides tools for browser GUI construction, application metadata configuration, and the generation of web manifests for mobile installation.

Applications can be deployed as standalone services or embedded into existing web frameworks using adapters and standard routing.

## Tags

### User Interface & Experience

- [Python-Based UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/python-based-ui-frameworks.md) — Allows construction of interactive web interfaces using only Python scripts without HTML, CSS, or JavaScript.
- [Python Web UI Libraries](https://awesome-repositories.com/f/user-interface-experience/python-web-ui-libraries.md) — Offers a library that allows creating interactive web user interfaces using Python scripts instead of JavaScript.
- [Rich Terminal Web Interfaces](https://awesome-repositories.com/f/user-interface-experience/rich-terminal-web-interfaces.md) — Treats the web browser as a rich terminal, translating Python function calls into UI elements in a sequential stream. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))
- [Data Visualization Interfaces](https://awesome-repositories.com/f/user-interface-experience/python-web-ui-libraries/data-visualization-interfaces.md) — Provides a direct interface for rendering interactive charts and graphs from external libraries within the web browser.
- [Visualization Library Integrations](https://awesome-repositories.com/f/user-interface-experience/visualization-library-integrations.md) — Enables the direct rendering of interactive charts and graphs from external Python libraries within the web UI. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))

### Web Development

- [Python Web Frameworks](https://awesome-repositories.com/f/web-development/backend-development/web-frameworks/language-specific-ecosystems/python-web-frameworks.md) — Functions as a Python web framework for building interactive interfaces without requiring HTML, CSS, or JavaScript.
- [Dynamic HTML Generators](https://awesome-repositories.com/f/web-development/dynamic-html-generators.md) — Translates high-level Python function calls into dynamic HTML and JavaScript payloads for the browser.
- [Asynchronous Web Servers](https://awesome-repositories.com/f/web-development/web-applications/asynchronous-web-servers.md) — Provides an asynchronous server environment to handle multiple user sessions and workloads efficiently using coroutines.
- [Script-Driven Layouts](https://awesome-repositories.com/f/web-development/web-page-construction/script-driven-layouts.md) — Enables the construction of interactive web pages using Python scripts to define layout and logic without manual markup. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))
- [Embedded Web Frameworks](https://awesome-repositories.com/f/web-development/embedded-web-frameworks.md) — Allows embedding of script-based web interfaces into existing frameworks to serve content via standard routes.
- [Python Data Dashboard Frameworks](https://awesome-repositories.com/f/web-development/python-data-dashboard-frameworks.md) — Enables building of data-driven dashboards that render visualizations and charts from Python logic.
- [WebSocket State Synchronization](https://awesome-repositories.com/f/web-development/state-syncing-reactivity/websocket-state-synchronization.md) — Uses persistent WebSocket connections to synchronize UI state and push updates between the server and client.
- [Web Framework Integrations](https://awesome-repositories.com/f/web-development/web-framework-integrations.md) — Provides adapters that allow script-based interfaces to be embedded into existing web frameworks via standard routes. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))
- [Application Adapters](https://awesome-repositories.com/f/web-development/web-infrastructure-deployment/web-infrastructure-servers/application-servers/asgi-and-wsgi-servers/application-adapters.md) — Includes logic to wrap application functions into standard request handlers for hosting on WSGI and ASGI servers.

### Development Tools & Productivity

- [Rapid Prototyping Environments](https://awesome-repositories.com/f/development-tools-productivity/rapid-prototyping-environments.md) — Facilitates rapid conversion of ideas into functional web interfaces using Python without frontend languages.
- [Internal Utility Construction](https://awesome-repositories.com/f/development-tools-productivity/internal-utility-construction.md) — Simplifies the development of internal browser-based utilities and forms to trigger backend processes.

### Operating Systems & Systems Programming

- [Session Concurrency](https://awesome-repositories.com/f/operating-systems-systems-programming/asynchronous-i-o-libraries/coroutine-based-asynchronous-i-o/session-concurrency.md) — Executes each user session as an asynchronous coroutine to manage concurrent interactions on a single thread.

### Software Engineering & Architecture

- [Asynchronous Session Management](https://awesome-repositories.com/f/software-engineering-architecture/concurrency-models/asynchronous-task-execution/asynchronous-session-management.md) — Executes each user session as an asynchronous coroutine to handle multiple concurrent interactions on a single thread. ([source](https://pywebio.readthedocs.io/en/latest/advanced.html))
- [Synchronous Request-Response Loops](https://awesome-repositories.com/f/software-engineering-architecture/synchronous-request-response-loops.md) — Implements a blocking communication channel that pauses script execution until the browser provides user input.

### Part of an Awesome List

- [ASGI Compatibility](https://awesome-repositories.com/f/awesome-lists/devtools/asgi-servers/asgi-compatibility.md) — Generates compatible interfaces that allow applications to be served by any standard WSGI or ASGI server. ([source](https://pywebio.readthedocs.io/en/latest/platform.html))
- [Terminal UI Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/terminal-ui-frameworks.md) — Build web applications using Python scripts.

### DevOps & Infrastructure

- [Standalone Service Deployments](https://awesome-repositories.com/f/devops-infrastructure/standalone-service-deployments.md) — Provides a built-in server to publish individual Python functions as standalone web applications. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))

### Programming Languages & Runtimes

- [User Input Capture](https://awesome-repositories.com/f/programming-languages-runtimes/user-input-capture.md) — Implements a mechanism to capture user input through synchronous calls that pause script execution until a response is received. ([source](https://cdn.jsdelivr.net/gh/pywebio/pywebio@dev/README.md))
