rio-ui


Namerio-ui JSON
Version 0.5.14 PyPI version JSON
download
home_pageNone
SummaryBuild modern Websites and Apps just with Python
upload_time2024-04-28 18:24:54
maintainerNone
docs_urlNone
authorPaul Pinterits
requires_python>=3.10
licenseLGPL-3.0
keywords app framework functional local-app modern react rio type-safe typed typing user-interface web web-app web-development web-framework
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            <p align="center">
  <img src="https://github.com/rio-labs/rio/blob/dev/rio/assets/hosted/rio-logos/logo-and-text-horizontal.png?raw=true" alt="Rio Logo" style="width: 16rem"/>
</p>

<p align="center">
  <strong>Rio</strong> is an easy to use framework for creating websites and apps and is based <strong>entirely on Python</strong>. 🐍 
  <br>
  You <strong>won't need a single line of HTML, CSS, or
  JavaScript</strong> to create beautiful, modern apps.<br><br>
  <a href="https://rio.dev/get-started">Tutorial</a> - <a href="https://rio.dev/examples">Examples</a> - <a href="https://discord.gg/7ejXaPwhyH">Discord</a> - <a href="https://rio.dev/docs">Docs</a> - <a href="https://github.com/rio-labs/rio">Source Code</a><br><br>
  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.
</p>

<p align="center">
  <img src="https://img.shields.io/badge/Rio-outline.svg?color=%2311e8e3e&link=https%3A%2F%2Frio.dev&style=flat-square&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjEwMDIuMTA1IgogICBoZWlnaHQ9IjE0OTkuODA1NyIKICAgdmlld0JveD0iMCAwIDI2NS4xNDAyOSAzOTYuODIzNTkiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg5NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRlZnMKICAgICBpZD0iZGVmczg5MCIgLz48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4OTMiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNi40MTM4NDcsNTAuMjcxMzUpIj48cGF0aAogICAgICAgaWQ9InBhdGgxIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMiCiAgICAgICBkPSJtIC04LjgwMzA4MDMsLTUwLjI3MTM1IGMgLTE1LjI3NjU1OTcsMC44NjA1MjQgLTE4LjYzMTgzNDcsMTcuNTQ0NTEyIC0xNy4zNjc0MTU3LDI5Ljk2ODk1MiAwLjUxMzcyNywxNi4yNDQxNjYxIC0xLjIxMzE5NywzMi43MTkyOTcgMS4yNjg1MTcsNDguNzY2NzkzIDguMTQxMTg1LDE0LjcxMDAxMiAyNi4wNzc2NzYxLDE4Ljg0OTk3MiAzOS44Nzc0ODIsMjYuNzcwMTM0IDMwLjM3ODk2MiwxNS4wNjY1NSA2MC43NTc5MjUsMzAuMTMzMTAxIDkxLjEzNjg4Nyw0NS4xOTk2NTEgLTM0LjgyMjM5OCwxNy42MDY2OCAtNzAuMjI2MTE3LDM0LjE0NzgzIC0xMDQuNjYwNTA2OCw1Mi40NjUyOCAtMjAuMDM3Nzc1MiwxMS40ODE0NCAtMzQuNzc4MTg3MiwzNi45NjY5OCAtMjQuMTAxMTk2Miw1OS41OTIxMSAxMS4yOTkzMSwyNS42MDQ3IDM5Ljc0MjkxMSwzMy43MTY5NSA2Mi40NzIyMDgsNDUuOTY4MDIgNTguOTU5MTAzLDI5LjA5NDExIDExNy43MTA1MzUsNTguNjQ4NDIgMTc2Ljc4OTE1NSw4Ny40NzU2IDE0LjA2MTIxLDMuOTY4MzYgMjQuMDM2NzYsLTEyLjAyMzEgMjEuODAwNzksLTI0LjUzMjIgLTAuNTQyODUsLTE3LjgzMTU3IDEuMjU4MTYsLTM1LjkwMjkyIC0xLjI2ODM2LC01My41MzY0OCAtOC4xNDA2MywtMTQuNzEwNzEgLTI2LjA3NjkyLC0xOC44NTE5OCAtMzkuODc3MTksLTI2Ljc3MTcyIC0zMC4zNzYwNiwtMTUuMDcxMTUgLTYwLjgwMDczLC0zMC4xNDExNyAtOTEuMTQ2NDIsLTQ1LjIxMzA0IDM0LjUwODc5LC0xNy4zNzM3NyA2OS40NTU5NywtMzMuOTI1NjUgMTAzLjY3Mjk4LC01MS44NDY2MyAyMC4xOTUxMywtMTEuMDA2MjggMzUuMzg2NDQsLTM2LjMwMDA1IDI1LjYwMzM4LC01OC45ODA5NCBDIDIyNC43MDYyMyw1OC44NzI1MzQgMTk2LjA1MDY3LDUwLjQ4NjY0MSAxNzMuMTY3MjYsMzguMjM4MTkxIDE1MS4xOTIyNiwyNy4zNDkyOTUgMTI2LjI0NjM5LDE0LjkzOTYzOCAxMDYuMTIxMTcsNC45OTc2Mjc4IDcwLjA0MTcxOSwtMTIuODk5Mjk5IDMzLjk2MjI2OCwtMzAuNzk2MjI1IC0yLjExNzE4MzQsLTQ4LjY5MzE1MiBsIC0zLjM3MjY3NzcsLTEuMjE4NDkyIHoiIC8+PC9nPjwvc3ZnPgo=" alt="Rio"/>
  <img src="https://img.shields.io/pypi/v/rio-ui?color=%2311e8e3e&style=flat-square" alt="Version"/>
  <img src="https://img.shields.io/discord/1213589765484576818?color=%2311e8e3e&label=discord&style=flat-square" alt="Discord"/>
  <img src="https://img.shields.io/pypi/pyversions/rio-ui?style=flat-square" alt="Python Version"/>
  <img src="https://img.shields.io/pypi/l/rio-ui?color=%2311e8e3e&style=flat-square" alt="License"/>
  <img src="https://img.shields.io/github/stars/rio-labs/rio?style=flat-square" alt="GitHub Stars"/>
</p>

## 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**
-   **Open Source & Free forever**

## Example ⌨️

```python
# 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.Text(f'You clicked the button {self.clicks} time(s)'),
            rio.Button('Click me', on_press=self._on_press),
        )

# Create an App and tell it to instantiate 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:

```bash
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:

```bash
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:

```bash
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](https://discord.gg/7ejXaPwhyH).

## Contributing 🤝

TODO: Write how someone can contribute to the project. :)

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "rio-ui",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "app, framework, functional, local-app, modern, react, rio, type-safe, typed, typing, user-interface, web, web-app, web-development, web-framework",
    "author": "Paul Pinterits",
    "author_email": "Jakob Pinterits <jakob.pinterits@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/1e/e1/3b2aa1d5be40c21dd7688003642effac9b7a582de4fac204e98f1805fdb2/rio_ui-0.5.14.tar.gz",
    "platform": null,
    "description": "<p align=\"center\">\n  <img src=\"https://github.com/rio-labs/rio/blob/dev/rio/assets/hosted/rio-logos/logo-and-text-horizontal.png?raw=true\" alt=\"Rio Logo\" style=\"width: 16rem\"/>\n</p>\n\n<p align=\"center\">\n  <strong>Rio</strong> is an easy to use framework for creating websites and apps and is based <strong>entirely on Python</strong>. \ud83d\udc0d \n  <br>\n  You <strong>won't need a single line of HTML, CSS, or\n  JavaScript</strong> to create beautiful, modern apps.<br><br>\n  <a href=\"https://rio.dev/get-started\">Tutorial</a> - <a href=\"https://rio.dev/examples\">Examples</a> - <a href=\"https://discord.gg/7ejXaPwhyH\">Discord</a> - <a href=\"https://rio.dev/docs\">Docs</a> - <a href=\"https://github.com/rio-labs/rio\">Source Code</a><br><br>\n  Rio brings React-style components to Python. Pull from a wealth of built-in\n  components and combine them to create your own custom components. Then combine\n  those into entire apps. Best of all, Rio apps can run both locally on your\n  machine and on the web.\n</p>\n\n<p align=\"center\">\n  <img src=\"https://img.shields.io/badge/Rio-outline.svg?color=%2311e8e3e&link=https%3A%2F%2Frio.dev&style=flat-square&logo=data:image/svg%2bxml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgd2lkdGg9IjEwMDIuMTA1IgogICBoZWlnaHQ9IjE0OTkuODA1NyIKICAgdmlld0JveD0iMCAwIDI2NS4xNDAyOSAzOTYuODIzNTkiCiAgIHZlcnNpb249IjEuMSIKICAgaWQ9InN2Zzg5NiIKICAgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOmNjPSJodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9ucyMiCiAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+PGRlZnMKICAgICBpZD0iZGVmczg5MCIgLz48bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE4OTMiPjxyZGY6UkRGPjxjYzpXb3JrCiAgICAgICAgIHJkZjphYm91dD0iIj48ZGM6Zm9ybWF0PmltYWdlL3N2Zyt4bWw8L2RjOmZvcm1hdD48ZGM6dHlwZQogICAgICAgICAgIHJkZjpyZXNvdXJjZT0iaHR0cDovL3B1cmwub3JnL2RjL2RjbWl0eXBlL1N0aWxsSW1hZ2UiIC8+PC9jYzpXb3JrPjwvcmRmOlJERj48L21ldGFkYXRhPjxnCiAgICAgaWQ9ImxheWVyMSIKICAgICB0cmFuc2Zvcm09InRyYW5zbGF0ZSgyNi40MTM4NDcsNTAuMjcxMzUpIj48cGF0aAogICAgICAgaWQ9InBhdGgxIgogICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2Utd2lkdGg6MC4yNjQ1ODMiCiAgICAgICBkPSJtIC04LjgwMzA4MDMsLTUwLjI3MTM1IGMgLTE1LjI3NjU1OTcsMC44NjA1MjQgLTE4LjYzMTgzNDcsMTcuNTQ0NTEyIC0xNy4zNjc0MTU3LDI5Ljk2ODk1MiAwLjUxMzcyNywxNi4yNDQxNjYxIC0xLjIxMzE5NywzMi43MTkyOTcgMS4yNjg1MTcsNDguNzY2NzkzIDguMTQxMTg1LDE0LjcxMDAxMiAyNi4wNzc2NzYxLDE4Ljg0OTk3MiAzOS44Nzc0ODIsMjYuNzcwMTM0IDMwLjM3ODk2MiwxNS4wNjY1NSA2MC43NTc5MjUsMzAuMTMzMTAxIDkxLjEzNjg4Nyw0NS4xOTk2NTEgLTM0LjgyMjM5OCwxNy42MDY2OCAtNzAuMjI2MTE3LDM0LjE0NzgzIC0xMDQuNjYwNTA2OCw1Mi40NjUyOCAtMjAuMDM3Nzc1MiwxMS40ODE0NCAtMzQuNzc4MTg3MiwzNi45NjY5OCAtMjQuMTAxMTk2Miw1OS41OTIxMSAxMS4yOTkzMSwyNS42MDQ3IDM5Ljc0MjkxMSwzMy43MTY5NSA2Mi40NzIyMDgsNDUuOTY4MDIgNTguOTU5MTAzLDI5LjA5NDExIDExNy43MTA1MzUsNTguNjQ4NDIgMTc2Ljc4OTE1NSw4Ny40NzU2IDE0LjA2MTIxLDMuOTY4MzYgMjQuMDM2NzYsLTEyLjAyMzEgMjEuODAwNzksLTI0LjUzMjIgLTAuNTQyODUsLTE3LjgzMTU3IDEuMjU4MTYsLTM1LjkwMjkyIC0xLjI2ODM2LC01My41MzY0OCAtOC4xNDA2MywtMTQuNzEwNzEgLTI2LjA3NjkyLC0xOC44NTE5OCAtMzkuODc3MTksLTI2Ljc3MTcyIC0zMC4zNzYwNiwtMTUuMDcxMTUgLTYwLjgwMDczLC0zMC4xNDExNyAtOTEuMTQ2NDIsLTQ1LjIxMzA0IDM0LjUwODc5LC0xNy4zNzM3NyA2OS40NTU5NywtMzMuOTI1NjUgMTAzLjY3Mjk4LC01MS44NDY2MyAyMC4xOTUxMywtMTEuMDA2MjggMzUuMzg2NDQsLTM2LjMwMDA1IDI1LjYwMzM4LC01OC45ODA5NCBDIDIyNC43MDYyMyw1OC44NzI1MzQgMTk2LjA1MDY3LDUwLjQ4NjY0MSAxNzMuMTY3MjYsMzguMjM4MTkxIDE1MS4xOTIyNiwyNy4zNDkyOTUgMTI2LjI0NjM5LDE0LjkzOTYzOCAxMDYuMTIxMTcsNC45OTc2Mjc4IDcwLjA0MTcxOSwtMTIuODk5Mjk5IDMzLjk2MjI2OCwtMzAuNzk2MjI1IC0yLjExNzE4MzQsLTQ4LjY5MzE1MiBsIC0zLjM3MjY3NzcsLTEuMjE4NDkyIHoiIC8+PC9nPjwvc3ZnPgo=\" alt=\"Rio\"/>\n  <img src=\"https://img.shields.io/pypi/v/rio-ui?color=%2311e8e3e&style=flat-square\" alt=\"Version\"/>\n  <img src=\"https://img.shields.io/discord/1213589765484576818?color=%2311e8e3e&label=discord&style=flat-square\" alt=\"Discord\"/>\n  <img src=\"https://img.shields.io/pypi/pyversions/rio-ui?style=flat-square\" alt=\"Python Version\"/>\n  <img src=\"https://img.shields.io/pypi/l/rio-ui?color=%2311e8e3e&style=flat-square\" alt=\"License\"/>\n  <img src=\"https://img.shields.io/github/stars/rio-labs/rio?style=flat-square\" alt=\"GitHub Stars\"/>\n</p>\n\n## Features \ud83e\udde9\n\n-   Modern, **declarative UI** framework\n-   **100% Python** - Zero HTML, CSS, or JavaScript required\n-   Over **50 Built-in components** for common UI elements, such as `rio.Switch`, `rio.Button`, and `rio.Text`, and many more\n-   Integrates with **modern Python tooling**: Thanks to being **entirely Type Safe** editors can give you instant suggestions and highlight problems right away\n-   Apps can run **both locally and on the web**\n-   **Open Source & Free forever**\n\n## Example \u2328\ufe0f\n\n```python\n# Define a component that counts button clicks\nclass ButtonClicker(rio.Component):\n    # Define the attributes of the component. Changing these will affect\n    # the GUI.\n    clicks: int = 0\n\n    # Define a method that increments the click count. We'll later make\n    # a button that calls this method whenever it is pressed.\n    def _on_press(self) -> None:\n        self.clicks += 1\n\n    # Define the `build` method. This method essentially tells rio what\n    # a ButtonClicker component looks like. Whenever the state of the\n    # ButtonClicker component changes, rio will call its `build` method\n    # and update the GUI according to the output.\n    def build(self) -> rio.Component:\n        return rio.Column(\n            rio.Text(f'You clicked the button {self.clicks} time(s)'),\n            rio.Button('Click me', on_press=self._on_press),\n        )\n\n# Create an App and tell it to instantiate a ButtonClicker when it starts\napp = rio.App(build=ButtonClicker)\napp.run_in_browser()\n```\n\n## Installation \ud83d\udee0\ufe0f\n\nRio is available on PyPI, so you can install it using pip:\n\n```bash\npip install rio-ui\n```\n\n## Getting Started \ud83c\udf93\n\nRio comes with a very helpful command line utility to help you out. Create a new project in one short command:\n\n```bash\nrio new\n```\n\nYou 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:\n\n```bash\nrio new my-project --type website --template \"Tic-Tac-Toe\"\ncd my-project\nrio run\n```\n\nYou'll have your first app up and running in seconds!\n\n## Status: In Development \ud83d\udea7\n\nRio is still in development. We're working hard to bring you the best possible\nexperience. If you have any feedback, please let us know on [our Discord server](https://discord.gg/7ejXaPwhyH).\n\n## Contributing \ud83e\udd1d\n\nTODO: Write how someone can contribute to the project. :)\n",
    "bugtrack_url": null,
    "license": "LGPL-3.0",
    "summary": "Build modern Websites and Apps just with Python",
    "version": "0.5.14",
    "project_urls": {
        "documentation": "https://rio.dev/docs",
        "homepage": "https://rio.dev"
    },
    "split_keywords": [
        "app",
        " framework",
        " functional",
        " local-app",
        " modern",
        " react",
        " rio",
        " type-safe",
        " typed",
        " typing",
        " user-interface",
        " web",
        " web-app",
        " web-development",
        " web-framework"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b9d4bf04ce396a28639590f4ee2690667b5f94f70945492443d7764ab0e75fc5",
                "md5": "cc01a63ab84b9d3e54a16b0b4642c8c5",
                "sha256": "f17f838cd29c4dd814f08c290ade3c084cdce70d8ab3b1562866294fe2fde0e4"
            },
            "downloads": -1,
            "filename": "rio_ui-0.5.14-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cc01a63ab84b9d3e54a16b0b4642c8c5",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 3467654,
            "upload_time": "2024-04-28T18:24:51",
            "upload_time_iso_8601": "2024-04-28T18:24:51.062876Z",
            "url": "https://files.pythonhosted.org/packages/b9/d4/bf04ce396a28639590f4ee2690667b5f94f70945492443d7764ab0e75fc5/rio_ui-0.5.14-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1ee13b2aa1d5be40c21dd7688003642effac9b7a582de4fac204e98f1805fdb2",
                "md5": "27c1dc19f89578735bde2ac9ed55662d",
                "sha256": "0b5159bf21d5ff6d776118b9c9d3daf2c3c07ab0f4d2223745d8a417b10b8204"
            },
            "downloads": -1,
            "filename": "rio_ui-0.5.14.tar.gz",
            "has_sig": false,
            "md5_digest": "27c1dc19f89578735bde2ac9ed55662d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 3522488,
            "upload_time": "2024-04-28T18:24:54",
            "upload_time_iso_8601": "2024-04-28T18:24:54.995716Z",
            "url": "https://files.pythonhosted.org/packages/1e/e1/3b2aa1d5be40c21dd7688003642effac9b7a582de4fac204e98f1805fdb2/rio_ui-0.5.14.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-28 18:24:54",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "rio-ui"
}
        
Elapsed time: 0.27537s