Replies: 1 comment
-
Thanks for asking! We're currently putting together a detailed blog post about our tech stack and what makes Rio unique. I hope to have it ready by the end of next week, and I'll share it here once it's done. 😊In the meantime, here's a brief overview: Reason for the projectAt work, we used Streamlit, Dash, and Reflex, while at university, we worked with Shiny. Each of these frameworks has its own limitations and unique styles for developing applications. This led us to create Rio, a brand new GUI framework designed to enable the creation of modern web apps with just a few lines of Python. Our goal is to simplify web and app development by adhering to Python's core principles of simplicity and compactness. With Rio, there's no need to learn additional languages like HTML, CSS, or JavaScript, as all UI, logic, components, and even layout are handled entirely in Python. We’ve eliminated the distinction between front-end and back-end, with Rio managing all communication transparently. We aim to create a framework that allows for rapid prototyping and the building of complex nested UI layouts using a single tool. By being as Pythonic as possible, Rio ensures a rapid learning curve and provides users with the flexibility to achieve whatever they desire. Additionally, we focus on making Rio intuitive and powerful, enabling developers to transition seamlessly from idea to implementation. What we didn't like about existing pure Python web development frameworksOur key features highlight the main aspects we found lacking in the frameworks you mentioned. It's the combination of these elements that sets us apart and significantly improves the user experience.
What sets us apartThis question delves into our philosophy. We've dedicated significant effort to make Rio feel truly Pythonic. Rio transperantly handles front-end and backend for you, making their existence practically invisible to the user. We've designed an intuitive layout system that requires no knowledge of HTML or CSS, streamlining the development process. Our state management is robust, allowing for global, session, and component-level states, and it automatically tracks state changes. Debugging is straightforward, with compatibility features that simplify the process when needed. Rio also comes equipped with a variety of development tools, comparable to Dash. While Rio has its limitations as a young project, we have ambitious plans for the future. We aim to significantly enhance customization options and boost performance. We are confident that we will achieve substantial progress in the coming months. Used technologiesWe leveraged FastAPI to manage API requests and used Uvicorn for serving our web applications. On the front end, our stack included TypeScript, CSS, and HTML, ensuring a responsive and dynamic user experience. Websockets were employed to enable real-time client-server communication. For the backend, Python was the primary language, handling the core logic and also functioning as the interface for user interactions. Additionally, we plan to incorporate Rust for performance optimizations. |
Beta Was this translation helpful? Give feedback.
-
Hello, developer team:
I just run into this rather young project; reading the docs does not tell me much about it. Can you guys add to the docs things like:
Beta Was this translation helpful? Give feedback.
All reactions