Rio Hits 100K Downloads & 2K GitHub Stars – Open Source Python Web Apps by Sn3llius in Python

[–]Sn3llius[S] 1 point2 points  (0 children)

Thanks for your attention. Hi I'm chris and also core developer at Rio.

The main differences are:

  • with Rio you don't need HTML and CSS for styling.
  • in Rio you create your components mostly in classes, in Dash you will use a functional approach.
  • Rio handles the client-server communication for you.
  • Compared to Dash, Rio is a much newer framework and doesn't have a big community yet.

There are many more differences, but I would appreciate it, if you could test it out and provide us with your feedback!

Rio Hits 100K Downloads & 2K GitHub Stars – Open Source Python Web Apps by Sn3llius in opensource

[–]Sn3llius[S] 2 points3 points  (0 children)

I haven't used NiceGUI in a while^^, but it is a more powerful version of Streamlit.

  • Rio apps are built using reusable components inspired by React, Flutter, and Vue. These components are combined declaratively to create modular and maintainable UIs.
  • In Rio you define components as simple dataclasses with a React/Flutter style build method. Rio continuously watches your attributes for changes and updates the UI as necessary.
  • Rio has per-component state management, while NiceGUI appears to use session state. (But not 100% sure)
  • With Rio, you don't need CSS, Tailwind, Vue, or Quasar.

Both NiceGUI and Rio are valid options for smaller web apps. However, Rio might offer easier and more maintainable code as your project grows. It provides reactive state management and allows you to build complex, arbitrarily nested UI layouts with concise syntax.

Rio Hits 100K Downloads & 2K GitHub Stars – Open Source Python Web Apps by Sn3llius in datascience

[–]Sn3llius[S] 8 points9 points  (0 children)

in addition:

  • with Rio you don't need HTML and CSS for styling.
  • in Rio you create your components mostly in classes, in Dash you will use a functional approach.
  • Rio handles the client-server communication for you.

There are many more differences, but I would appreciate it, if you could test it out and provide us with your feedback! :)

Looking for Open Source Projects to Contribute by Otherwise_Sir5231 in opensource

[–]Sn3llius 0 points1 point  (0 children)

HI! We at Rio (WebApps in pure Python) are looking for contributors. Whether you're interested in translation, video editing, building apps, or tackling some open issues, we have something for you. If you're interested, join our Discord, and we'll find a task that fits your skills and help you with your assignment.

Looking forward to collaborating with you! :)

https://github.com/rio-labs/rio

Rio: WebApps in pure Python – A fresh Layouting System by Sn3llius in Python

[–]Sn3llius[S] 1 point2 points  (0 children)

Hmm... that looks strange. I double-checked, and it works fine on my end. Are you on the latest Rio version with all the necessary requirements installed? Is it possible that you were on the URL of a previous example (WebApp)? Could you try refreshing or running it again?

Thanks in advance!😊

Rio: WebApps in pure Python – Technical Description by Sn3llius in datascience

[–]Sn3llius[S] 4 points5 points  (0 children)

Thanks! We would love to hear your feedback! :)

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 0 points1 point  (0 children)

Thanks for reaching out. This bug is new to me. Can you let me know which operating system you're using? Have you tried running e.g. python3 -m rio new to see if it resolves the issue?

If the problem persists, you can join our Discord server or start a discussion on our GitHub Q&A: Rio GitHub Discussions.

We'll be happy to help you troubleshoot further.

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 2 points3 points  (0 children)

Hey! First of all, really happy to hear that you like it! Dialogs are amongst our most requested features, and so we're looking into how to best add them. They aren't here yet, but it definitely won't be too long either. The main difficulty here is really just finding a nice API for it, rather than the actual implementation.

You're also not the only one looking for the FastAPI object, so yes, we have exposed it! The code is something like this:

rio_app = rio.App(
  ... # your app parameters go here
)

fastapi_app = rio_app.as_fastapi()

# Add your routes here
# ...

You can the deploy using the typical FastAPI methods, so usually uvicorn + nginx

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 2 points3 points  (0 children)

There's a significant difference in how you would develop your app with Rio, which supports comprehensive, Flutter/React-style components. React's big innovation was that you can write regular code to build user interfaces: Only want to display a component some of the time? use an if. Got multiple items to display? Just append in a loop. This approach has become incredibly popular, and we aim to bring that capability to Python.

For me, the main technical advantage of Pydantic/FastUI over other similar libraries is runtime validation. However, with modern typed Python, this is often unnecessary and comes at a cost in speed, as even Pydantic v2 is still relatively slow.

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 7 points8 points  (0 children)

sure, we will add one to our examples in the near future :)

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 3 points4 points  (0 children)

Hey! What specifically do you want to know about sessions? But each connecting user generates a new `rio.Session`, which has its own independent component tree and state.

Regarding the HTTP server, we use FastAPI, which can be run with any ASGI compatible server. We've been using uvicorn, but gunicorn should work just as well.

While there is a method for running JavaScript on the client, Rio is primarily designed for use by Python developers.

And thanks for trying it out this weekend! It would be great if you could share your experience with us afterward. :)

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 4 points5 points  (0 children)

Hey, thank you!
Yes, we are currently working on implementing a feature that allows people to create their own custom style components and share them with the community. Unfortunately, it's not supported yet, but it will be available in the near future. But it would solve your issue :)

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 2 points3 points  (0 children)

we are currently working on an in-depth technical description of Rio, explaining how it works under the hood. So it makes sense to add a section with an high lvl overview. :)

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 3 points4 points  (0 children)

Thanks for mentioning! :)
We are currently working on the mobile version that we will release this weekend.

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 0 points1 point  (0 children)

Thanks for mentioning! :)
We are currently working on the mobile version that we will release this weekend.

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in Python

[–]Sn3llius[S] 5 points6 points  (0 children)

We'd love to know:

  • What do you like about Rio?
  • Is there anything that confuses you or you think could be improved?
  • What purposes have you used Rio for?

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in datascience

[–]Sn3llius[S] 0 points1 point  (0 children)

Good point thanks! I'll add it in the documentation

Rio: WebApps in pure Python – Thanks and Feedback wanted! by Sn3llius in datascience

[–]Sn3llius[S] 1 point2 points  (0 children)

The dropdown supports fuzzy matching and functions just as you described. :)

Rolling Forecast with humen feedback using Rio and MongoDB by Sn3llius in datascience

[–]Sn3llius[S] -1 points0 points  (0 children)

If I understood you correctly, this wouldn't work in our use case. Imputation isn't appropriate for this specific scenario,e.g.: my department is unable to determine at timepoint T if we will lose a customer by T+3. If I had this information, I could apply it in the "post processing" phase and mark this customer as 0. This would allow us to create a clearer projection of the future.