rio-labs

rio: Build Web Apps in Python

Rio is a Python framework for building interactive websites and apps with Python-defined components instead of writing HTML, CSS, or JavaScript. It suits Python developers who want to create web or local apps using a declarative UI approach.

Stars
3.6k
Forks
160
Stars, last 10 days
+2

Our take

Health score

59/100

How it is scored
Activity
55
Community
63
Issues
47
Pull requests
69

+2 stars in the last 10 days

Overview

Rio is a framework for building websites and apps with Python. Developers compose interfaces from components and define their behavior in Python, avoiding the need to write HTML, CSS, or JavaScript for the UI.

It is aimed at Python developers who want to build interactive interfaces and run their apps locally or on the web. Its component-based approach can be useful for data-focused or other Python projects that need a GUI without switching to a JavaScript frontend stack.

Key Features

  • Declarative, component-based UI built with Python.
  • More than 50 built-in components, including buttons, switches, and text elements.
  • Python type-safety support for editor suggestions and error highlighting.
  • Apps can run locally or on the web.
  • Includes development tools and a command-line utility for creating and running projects.
  • Provides templates for starting new projects.

Use Cases

  • Python developers building an interactive web interface for an existing Python project.
  • Data scientists creating a GUI for data analysis or visualization workflows.
  • Developers prototyping CRUD apps or internal tools who prefer to define the interface in Python.
  • Teams creating a small app that should be usable both in a browser and as a local app.

Getting Started

Install Rio from PyPI:

pip install rio-ui

For project creation and usage details, see the README and official documentation.

Considerations

  • Rio abstracts the frontend behind Python components. Projects that need direct control over HTML, CSS, or JavaScript may be better served by a conventional frontend stack.
  • The README describes support for both local and web apps, but does not specify deployment requirements or supported hosting environments. Check the documentation before choosing it for a particular deployment.

Found this useful?

Share it with someone who would like rio.

Comparisons