-
Notifications
You must be signed in to change notification settings - Fork 76
Home
We recently launched Rio, our new framework designed to help you create web and local applications using just pure Python. The response from our community has been overwhelmingly positive and incredibly motivating for us.
With the praise has come a wave of curiosity. The most common question we've encountered is, "How does Rio actually work?" If you've been wondering the same thing, you're in the right place! Here we'll explore the inner workings of Rio and uncover what makes it so powerful.
We will explore the following topics:
- Why Rio?
- What are Components?
- How does observing Attributes work?
- How does Diffing and Reconciliation work?
- How does our Layouting work?
We are working on technical description for:
- How does the Client-Server Communication work?
We created Rio to address the challenges Python developers face when building modern web apps. Python is extremely simple and concise, making it one of the most popular programming languages in the world. Existing frameworks often require additional skills in HTML, CSS, or JavaScript, adding complexity and creating barriers for developers who prefer Python’s simplicity. Recognizing Python’s potential for streamlined and compact development, we envisioned a framework that allows users to focus entirely on Python without sacrificing functionality or flexibility.
Rio eliminates the traditional divide between frontend and backend. Its automated communication simplifies development, removing the need for defining endpoints or sending requests manually. Inspired by the best aspects of frameworks like Flutter and React, Rio introduces a declarative interface, reusable components, and dynamic attribute binding to Python. These features enable developers to create powerful and maintainable applications with minimal effort.
Many projects rely on popular libraries like React internally, but the core benefits and elegance of these libraries are often diluted in the process. Take React, for example—its defining feature is that the "app is code," where components are dynamically built within a render method that automatically re-triggers upon state changes. However, this fundamental principle is lost in libraries that simply wrap React. It contradicts the very premise of React and the reasons for its widespread popularity among developers.
Unlike wrapper frameworks, which add layers of abstraction and often suffer from performance issues, Rio was built from scratch. This approach avoids the overhead and inefficiencies common in wrapped frameworks and ensures compatibility, and a cleaner development experience. By embracing a native architecture tailored specifically for Python, Rio delivers a faster, more reliable framework for developers.
Rio reduces repetitive tasks and enhances productivity with built-in support for modern developer experience, such as hot reloading, static typing, targeted error messages in both the console and GUI. Its clean structure and unlimited GUI designs with fully customizable and reusable components make it versatile enough for hobby projects, proof of concepts, and production-grade applications alike.