Similar projects and alternatives to pyrustic
Run Linux Software Faster and Safer than Linux with Unikernels.
Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.
Reviews and mentions
Show HN: GUI As Stapled Pages (GASP) – A new way to quickly build Python apps
5 projects | news.ycombinator.com | 16 Nov 2021
Hi HN !
I am excited to publish my very first white paper. I've been working on a framework called TkF (originally called Pyrustic Framework) for several months now, to make Python applications. The framework uses Tkinter (the default Python GUI toolkit), comes with new widgets (megawidgets to be precise), a dark theme, a CLI tool to manage Python projects, and other libraries I have developed for styling, multithreading, etc. I did other side projects to test the framework and discover weaknesses which I then correct. I was happy with the project because it just works.
But I was not really productive with TkF. It takes a long time to create a GUI . So I thought about creating a GUI builder. After several days of thinking, my thoughts drifted away from the Python philosophy: simple is better than complex. I eventually gave up on the idea of the GUI builder because among other reasons, I don't like using a GUI builder, for example it hides a lot of the complexity that comes back like a boomerang afterwards. A big software bazooka does not necessarily convince everyone, for example many people still prefer to use Vim or Emacs instead of an IDE .
So I created the framework Dresscode. I chose this name Dresscode only to be able to make the sentence "Dress up your code with a beautiful GUI !". If TkF is C, Dresscode would be Python. With Dresscode, main views are Pages and widgets are graphical Components. Dresscode is not a GUI builder but it is designed to build a GUI as fast as a GUI builder but with two drawbacks: you will have to type some code (although it is not a lot of code compared to TkF), and the layout mechanism is not very flexible. Still to allow the developer to be productive, I implemented a very simple idea: a navigation bar automatically populated with references to the Pages (example: Home, About, etc) of the application.
A few days ago, I was editing the READMEs of each of the Pyrustic Open Ecosystem  projects to improve them. The README of the TkF project has a nice cover image  which is a screenshot of a demo made with TkF. I wanted such a pretty image for the README of Dresscode. But this demo cannot be done as is with Dresscode without cheating. There are two buttons "Cancel" and "Connect" under a form which cannot be reproduced as it with Dresscode because the layout mechanism is not very flexible (flexibility restricted to gain in productivity).
I wanted to unlock the potential of the layout mechanism without sacrificing developer productivity. To do this, I introduced the notion of "parent" which allows the developer to freely decide where he wants to install a widget (or group of widgets) on a view. Thanks to serendipity , I had other interesting ideas. I thought that all of this might form a concept that can be implemented in other programming languages. So I named the concept GASP: GUI As Stapled Pages. Here, the navigation bar represents the staple. I decided to create a new project and to abandon Dresscode. I wrote the reference framework named Gaspium  then wrote a white paper to encourage other people to adopt the concept and implement it in other programming languages (even other implementations still in Python but with Qt or wxWidgets or GTK etc).
Gaspium is a lightweight framework for building GASP applications and it was created with TkF. In short, we define pages to which we add graphical components. With a single line we add a complex graphical component to a page and the layout mechanism is controlled with only 5 keyword arguments ('parent', 'side', 'anchor', 'fill', and 'expand') whose defaults are sufficient in most cases. Then we add these pages to an instance of the App class. The first page added is de facto the home page and it will be open when the application is started. Adding a page makes it automatically referenced in the application's navigation bar. Each graphical component can be identified with a unique identifier in order to be able to read its content or update it. Each page has a unique identifier assigned automatically or manually. You can open an arbitrary page directly from the command line and even pass data to it. Gaspium is suitable for: building internal tools, teaching GUI programming, building GUI wrapper for command line scripts, prototyping, building utilities for yourself or other programmers, lightweight commercial apps, et cetera.
The concept of GASP not only makes it possible to be more productive in GUI programming, but it changes the relationship that developer and user have with an application. On the developer side, the concept of GASP structures his ideas to think of his project in independent parts (the pages), which represents a big advantage in terms of organization and maintainability of his project. For the application user familiar with monolithic applications, the concept of GASP turns the application into a series of useful programs, each with a graphical interface that can be invoked arbitrarily from the command line.
I already use Gaspium according to the principle of dogfooding. Gaspium documentation is still precarious for the moment, but that will change soon. The Pyrustic Open Ecosystem of which Gaspium is a part, has been updated (Generation of documentation, git workflow, packaging, versioning, PyPI release ...) with an internal tool that I created in a very short time with Gaspium and Backstage (Backstage  is a CLI tool to manage Python projects). I can't wait to read your thoughts  on all of this, or show me a similar project etc. If you hate GUI programming or find it too difficult, I would like to know if this GASP concept makes you want to do GUI programming and why. Thank you for your attention !
 https://news.ycombinator.com/item?id=25036036 (Why are so many coders still using Vim and Emacs?)
 https://pyrustic.github.io (Pyrustic Open Ecosystem)
 https://raw.githubusercontent.com/pyrustic/misc/master/asset... (Cover image for the README of the TkF project)
 https://news.ycombinator.com/item?id=1826666 (Paul Buchheit: Serendipity finds you)
 http://sl4.org/crocker.html (Crocker's Rules)
Hubstore – Apps distribution and friend-to-friend promotion
8 projects | dev.to | 3 Sep 2021
Show HN: Hubstore – Apps distribution and friend-to-friend promotion
8 projects | news.ycombinator.com | 2 Sep 2021
- ensures that more an app is recommended by different developers, as well as a chance to be in the promotion list often (until the user decides to install it).
The choice to put a Promoted button on which the user can click may seem naive. Implementing intrusive pop-ups can be recommended as a more pragmatic method. This choice to trust the altruistic curiosity of users was influenced by an observation (I have 0 statistics to show) I made here on Hackernews: there are always users who click on Newest (https://news.ycombinator.com/shownew) to bring up posts that might deserve attention, though these users are not affiliated with these posts.
I want Hubstore to make it easy to distribute and promote Python apps (built with Pyrustic Framework or not). This is still a beta version for early-adopters.
Under the hood:
- Hubstore is built with Pyrustic Framework 
- data storage is done with Shared 
- autocomplete is done with Suggestion 
- GUI-compatible multithreading is done with Threadom 
- Hubstore consumes Python Wheels
- Hubstore uses Github's Release Asset feature 
- Apps can be built and released with Backstage 
- the dark theme is based on Cyberpunk-Theme 
- all views implement Viewable 
- Hubstore uses Kurl  to fetch resources from api.github.com
I would like to know what you think  of this project.
Democratizing auto-complete(suggest) for Python desktop applications
2 projects | dev.to | 4 Jul 2021
I created Pyrustic Framework which uses Tkinter as GUI Toolkit, then I made a collection of graphical components like Table, Scrollbox, and more.
Show HN: I am building an open ecosystem for desktop application dev and distrib
1 project | news.ycombinator.com | 17 Apr 2021
Show HN: My attempt to demystify Python GUI development
3 projects | news.ycombinator.com | 12 Apr 2021
Dresscode – Dress up your code with a beautiful GUI
3 projects | dev.to | 8 Apr 2021
I think there are a lot of people who would like to add a GUI to their existing projects. But they don't want or don't have the time to or are afraid to learn how to use a GUI toolkit. By the way, I'm writing a tutorial to help them get interested in GUI dev. In the meantime, there is Dresscode !
Show HN: I wrote the first tutorial for Pyrustic
1 project | news.ycombinator.com | 18 Mar 2021
pyrustic/pyrustic Pyrustic is a lightweight framework and software suite to help develop, package, and publish Python desktop applications
1 project | reddit.com/r/Python | 9 Mar 2021
Show HN: Pyrustic – To build and publish desktop applications
1 project | news.ycombinator.com | 8 Mar 2021
Show HN: Hubstore – Showcase your Python desktop applications
2 projects | news.ycombinator.com | 15 Feb 2021
Hi HN !
Twelve days ago, I showcased: Hubstore – My contribution to how we distribute and manage FOSS apps .
Hubstore is a lightweight software that lets you download, install, manage, and run Python desktop applications. I have built Pyrustic  (warmly welcomed months ago on HN ) to help develop Python desktop applications.
Pyrustic is still a work in progress, but I also want end-users (even people with no programming experience) to easily consume the work of a Python programmer (Pyrustic based work or not). By work, I mean desktop applications of course.
I got some interesting feedback  on Hubstore (and Pyrustic too) and so here I am again to show a major Hubstore update.
Hubstore now consumes applications built with the Python standard packaging format Wheel  instead of reinventing the wheel . Many pre-existing Python projects are de facto Hubstore-compatible.
Pyrustic has also had changes and can now produce wheels. I will do another Show HN specifically for Pyrustic after improving its documentation and README.
I look forward to reading your comments , questions etc. Thanks for your feedback. Genuinely appreciated.
pyrustic/pyrustic is an open source project licensed under MIT License which is an OSI approved license.