Skip to content

fluvel-project/fluvel

Fluvel Logo

Current Version PyPI - License Python Version Platform Desktop Integrated CLI Hot Reloading

Tip

Stable API Architecture (Beta 1.0.0b1): Although Fluvel is currently in the testing phase, the class structure, the context handler system, and the PYRO state engine are definitive. Future updates will focus on internal optimization and component expansion, ensuring that your current code remains compatible with stable versions. Caution is recommended in critical production environments until the final 1.0 release.

About Fluvel

Fluvel is a declarative desktop framework for Python that brings modern reactive architecture to Qt applications, built on top of PySide6. It abstracts the complexity of Qt by replacing manual layout management with declarative context handlers and a Tailwind-inspired styling processor. Powered by the PYRO reactive engine, it enables deterministic state-to-UI binding and a decoupled resource architecture (i18n/theming), ensuring that large-scale Python applications remain performant and easy to refactor.

Fluvel Demo: Start Project & Hot-Reload
Fluvel in action: Scaffolding a project and real-time UI updates via Hot-Reload.
Get started in 30 seconds →

Key Features

  • Declarative UI Architecture: Interface definition via the Page abstract class, utilizing a context-handler-based syntax. This approach abstracts boilerplate layout logic, focusing on component hierarchy and structural intent. Learn more →

  • PYRO Reactive Engine: A standalone, agnostic state engine (Pyro Yields Reactive Objects) featuring automatic dependency tracking. It supports reactive primitives and collections (lists/dicts), enabling fine-grained UI binding and deterministic state synchronization. Learn more →

  • Utility-First Styling & QSSProcessor: High-performance styling via an integrated token-based system. The QSSProcessor parses inline utility classes and external QSS, facilitating rapid component skinning without manual stylesheet overhead. Learn more →

    • Example: Button(style="primary fg[red] b[2px solid blue]")
  • Structural i18n & Logic Decoupling: Separation of concerns through .fluml (Fluvel Markup Language) and XML schemas. This architecture decouples static/dynamic content from the Python business logic, enabling independent translation workflows and resource management. Learn more →

  • Stateful Routing System: Centralized navigation management via the Router class, handling page lifecycle and transitions within a unified application state.

  • Integrated Dev-Tools CLI: A dedicated command-line interface for automated project scaffolding, asset management, and deployment workflows.

  • Hot-Reloading Environment: A development-time watcher that performs runtime hot-patching of pages. It allows for instantaneous UI and theme iterations without destroying the application process or losing current state. Learn more →

🚀 Quick Start

1. Installation

To install this version, use the following command:

# Setup environment
python -m venv venv
source venv/bin/activate  # On Windows use: venv\Scripts\activate

# Install Fluvel
pip install fluvel

2. Starting a Project

Create your first application with the integrated CLI:

fluvel startproject
fluvel run

Documentation Guide

Once you have your first project up and running, you can delve deeper into Fluvel's fundamental pillars. Each of these modules is designed to cover a specific aspect of your application's lifecycle and development:

Technical Architecture Index

To delve deeper into Fluvel's infrastructure and understand the coordination of internal systems:

Explore the Technical Architecture Index here →

Project Roadmap

We have big plans for Fluvel, including AI-powered translations, Rust-core optimizations, and advanced IDE tooling.

See the full Roadmap here →

License

Fluvel is an open-source project, licensed under the GNU LGPL-3.0 Licence (or any later version).

About

A Python framework for building modern and declarative UIs with PySide6.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published

Languages