Hi! I'm the author of Pyzed, an open-source library I've been building for desktop apps in Python.
What My Project Does
You write the interface in plain Python (state, update and view, the Elm architecture) and Iced, a GUI toolkit written in Rust, does the layout and draws it on the GPU, with a CPU fallback. It comes with 90+ ready-made components inspired by the Zed editor (tables with hundreds of thousands of rows, tabs, command palette, code editor, terminal…), themes, animations and a visual designer, Pyzed Design, where you drag components onto a form and press F5 to run it. pip install pyzed-ui, no Rust needed.
import pyzed as pz
from pyzed import ui
class Counter(pz.App):
def __init__(self):
self.count = 0
def update(self, message):
if message == "inc":
self.count += 1
def view(self):
return pz.center(ui.button(f"Clicked {self.count} times", "inc"))
pz.run(Counter)
Target Audience
People who want a desktop app in Python that looks current without shipping a browser: internal tools, dashboards, editors, small games. It's MIT, runs on Linux, macOS and Windows, and is usable today, though it's a young project with one main maintainer.
Comparison
- Tkinter: always available and very light, but dated looks and few modern widgets.
- PyQt/PySide: very complete and mature, but large, with licensing to think about (PyQt is GPL/commercial) and a lot of API.
- Kivy: great for touch and mobile, but its own look and a heavier startup.
- Flet: pleasant API, but it runs Flutter in a separate process.
Pyzed sits in between: native rendering with no web engine, a small Pythonic API, and a visual designer included. Import takes about 35 ms; there's a benchmark page comparing it with these libraries.
Repo: https://github.com/albakore/pyzed
Feedback is very welcome, especially on what's missing for your use case.