/fbs

Create cross-platform desktop apps in minutes, not months

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

fman build system

Cross-platform desktop applications are a lot of work:

  • Packaging an app into a standalone executable is not trivial.
  • Creating installers is tedious.
  • Code signing is a hassle but necessary to avoid OS warnings "untrusted app".
  • Auto-updating is a pain.

What makes the situation even worse is that most solutions to the above problems are platform-specific. So you have to create an installer for Mac, one for Windows, etc.

In recent years, Electron has seen a lot of interest as a technology for creating cross-platform desktop apps. The problem is, it is very resource intensive and its performance is not good enough for many use cases.

An alternative to Electron is Qt. It has been around for many more years and can be much faster than Electron. Qt is written in C++, but bindings are available for other languages. A popular choice for Python is PyQt.

This project addresses the above problems for applications written with PyQt. It open sources code that was originally written for the cross-platform file manager fman. By packaging field-tested solutions in one cohesive package, this project lets you create cross-platform desktop apps in minutes, not months.

Getting started

The best place to get started is the official tutorial.

Licensing

This project is licensed under the GPL. In simple terms, this means you can use it for free in open source projects that are also licensed under the GPL. If on the other hand you want to use the project for a proprietary app where you don't want to open source the code, then you need a commercial license. The price for one developer is EUR 79 if you purchase before Feb 11, 2018, EUR 99 after. One year of updates is included. To obtain a license, click here.

Current Status

It's currently possible to package apps on Windows, Mac and Linux. Installers can be created for Windows and Mac. The next steps are to let you create an installer for Ubuntu (Linux), then code signing, then automatic updates. To stay updated as these features are open sourced, please subscribe here.