Skip to main content

Build modern Websites and Apps just with Python

Project description

Rio Logo

Rio is an easy to use framework for creating websites and apps and is based entirely on Python. 🐍
You won't need a single line of HTML, CSS, or JavaScript to create beautiful, modern apps.

Tutorial - Examples - Discord - Docs - Source Code

Rio brings React-style components to Python. Pull from a wealth of built-in components and combine them to create your own custom components. Then combine those into entire apps. Best of all, Rio apps can run both locally on your machine and on the web.

Rio Version Python Version License

dall_e_example

Features 🧩

  • Modern, declarative UI framework
  • 100% Python - Zero HTML, CSS, or JavaScript required
  • Over 50 Built-in components for common UI elements, such as rio.Switch, rio.Button, and rio.Text, and many more
  • Integrates with modern Python tooling: Thanks to being entirely Type Safe editors can give you instant suggestions and highlight problems right away
  • Apps can run both locally and on the web
  • Dev tools included
  • Open Source & Free forever

Example ⌨️

# Define a component that counts button clicks
class ButtonClicker(rio.Component):
    # Define the attributes of the component. Changing these will
    # affect the GUI.
    clicks: int = 0

    # Define a method that increments the click count. We'll later
    # make a button that calls this method whenever it is pressed.
    def _on_press(self) -> None:
        self.clicks += 1

    # Define the `build` method. This method essentially tells rio
    # what a ButtonClicker component looks like. Whenever the state
    # of the ButtonClicker component changes, rio will call its
    # `build` method and update the GUI according to the output.
    def build(self) -> rio.Component:
        return rio.Column(
            rio.Button('Click me', on_press=self._on_press),
            rio.Text(f'You clicked the button {self.clicks} time(s)'),
        )

# Create an App and tell it to display a ButtonClicker when it starts
app = rio.App(build=ButtonClicker)
app.run_in_browser()

Installation 🛠️

Rio is available on PyPI, so you can install it using pip:

pip install rio-ui

Getting Started 🎓

Rio comes with a very helpful command line utility to help you out. Create a new project in one short command:

rio new

You can choose from a variety of built-in templates to get you started. Here's a complete example to create a project based on the tic-tac-toe template:

rio new my-project --type website --template "Tic-Tac-Toe"
cd my-project
rio run

You'll have your first app up and running in seconds!

Status: In Development 🚧

Rio is still in development. We're working hard to bring you the best possible experience. If you have any feedback, please let us know on our Discord server.

Community Support 🤝

For general help using Rio, please refer to the official Rio documentation. For additional help, you can use one of these channels to ask a question:

  • Discord (For live discussion with the Community and Rio team)
  • GitHub (Bug reports, Contributions)
  • Community Forum (Questions and Discussions)

Project details


Release history Release notifications | RSS feed

This version

0.6

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rio_ui-0.6.tar.gz (3.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rio_ui-0.6-py3-none-any.whl (3.5 MB view details)

Uploaded Python 3

File details

Details for the file rio_ui-0.6.tar.gz.

File metadata

  • Download URL: rio_ui-0.6.tar.gz
  • Upload date:
  • Size: 3.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for rio_ui-0.6.tar.gz
Algorithm Hash digest
SHA256 8763452a5f18e0b27ff48e7fa77fa0ffab6425220213075f227e6ac97c8e1856
MD5 f068f3e01cd0002723d7fc5e4e4a119b
BLAKE2b-256 716b6426794e2e60b8f26017597fd6e9fc433578d0ce1b70f244faf5baf725d2

See more details on using hashes here.

File details

Details for the file rio_ui-0.6-py3-none-any.whl.

File metadata

  • Download URL: rio_ui-0.6-py3-none-any.whl
  • Upload date:
  • Size: 3.5 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.2

File hashes

Hashes for rio_ui-0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 991d4bcb9e1c89f38073c1698b58502de910de74ee3c0a7c7c759703a1bb40f2
MD5 51d8635562721bdfa6a16ff6b371ed60
BLAKE2b-256 48cded58d60c6bdf3ef517e13559f0255f15d3801a9159b5f15dcd100b0d4d4f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page