How do you create a cross-platform GUI without using Electron?

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • SonarLint - Deliver Cleaner and Safer Code - Right in Your IDE of Choice!
  • Scout APM - Less time debugging, more time building
  • SaaSHub - Software Alternatives and Reviews
  • tauri

    Build smaller, faster, and more secure desktop applications with a web frontend.

    https://tauri.studio/ - I haven’t used it myself but looks pretty interesting. They say they use existing browser engine shipped with OS and desktop integration layer written in Rust. The claim is that you get an application size under 1MB

  • sciter

    Sciter: the Embeddable HTML/CSS/JS engine for modern UI development

    Sciter [1] is kind of a really lightweight electron. It's about 8Mb, cross platform, and you can either run it standalone (like electron) or use it as a library from Rust/D/Python/C#/whatever. You pay for that with a lack of compatibility with the existing Javascript ecosystem. Any moderately complex JavaScript library that interacts with the dom will probably use something that Sciter doesn't implement, so you end up reimplementing stuff like graph libraries. On the other hand there are a couple of very useful additional APIs that regular browsers don't have (like SQLite).

    1: https://sciter.com/

  • SonarLint

    Deliver Cleaner and Safer Code - Right in Your IDE of Choice!. SonarLint is a free and open source IDE extension that identifies and catches bugs and vulnerabilities as you code, directly in the IDE. Install from your favorite IDE marketplace today.

  • electron-alternatives

    Few Cross platform desktop GUI App development options are listed here

  • javafx-gradle-plugin

    Gradle plugin that makes it easy to work with JavaFX 11+ (by openjfx)

  • JUCE

    JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins.

  • fyne

    Cross platform GUI in Go inspired by Material Design

    I recently built one using Fyne for golang. It works well for my case but Fyne is still very new and in development.

    http://fyne.io/

  • FLTK

    FLTK - Fast Light Tool Kit - https://github.com/fltk/fltk - cross platform GUI development

  • Scout APM

    Less time debugging, more time building. Scout APM allows you to find and fix performance issues with no hassle. Now with error monitoring and external services monitoring, Scout is a developer's best friend when it comes to application development.

  • vue-nodegui

    Build performant, native and cross-platform desktop applications with native Vue + powerful CSS like styling.🚀

  • react-nodegui

    Build performant, native and cross-platform desktop applications with native React + powerful CSS like styling.🚀

  • nodegui

    A library for building cross-platform native desktop applications with Node.js and CSS 🚀. React NodeGui : https://react.nodegui.org and Vue NodeGui: https://vue.nodegui.org

  • wxWidgets

    Cross-Platform C++ GUI Library

    https://www.wxwidgets.org/

    It's open source, the code has always felt reasonably clean to me, and it gives your apps native look and feel.

  • solvespace

    Parametric 2d/3d CAD

    https://github.com/solvespace/solvespace/tree/master/src/pla...

    There is no other platform specific code anywhere in the app, but like I said above we don't support widgets.

    There is also an emscripten port in a branch, but it doesn't want to build recently.

  • Godot

    Godot Engine – Multi-platform 2D and 3D game engine

  • Uno Platform

    Build Mobile, Desktop and WebAssembly apps with C# and XAML. Today. Open source and professionally supported.

  • MudBlazor

    Blazor Component Library based on Material design. The goal is to do more with Blazor, utilizing CSS and keeping Javascript to a bare minimum. [Moved to: https://github.com/MudBlazor/MudBlazor] (by Garderoben)

    There are grid controls from the usual commercial vendors like Radzen and Telerik. I used them briefly during a free trial. It has a funny name, but MudBlazor [1] has been the MIT licensed library I have been using lately. I have been using their Table control, which may be what you are looking for in a data grid. [2] Check it out and see.

    [1] https://mudblazor.com/

    [2] https://mudblazor.com/components/table#api

  • libui

    Simple and portable (but not inflexible) GUI library in C that uses the native GUI technologies of each platform it supports.

    libui has bindings for many languages but might be too immature for complex needs https://github.com/andlabs/libui

  • Avalonia

    A cross-platform UI framework for .NET

    I've had decent experiences with Python and Qt5. Windows was historically the painful part, but FBS¹ makes that a lot less painful nowadays. Tk also works reasonably well if you don't need the features and native integration that Qt offers (and I'm pretty sure FBS can handle Tkinter apps just fine).

    The .NET ecosystem is another solid choice for cross-platform desktop app development (and nowadays even mobile, too). Avalonia² in particular looks promising, and is probably what I'd try using first should I ever be tasked with developing a desktop app again.

    ----

    ¹: https://build-system.fman.io/

    ²: https://avaloniaui.net/

  • pywebview

    Build GUI for your Python program with JavaScript, HTML, and CSS

    There's pywebview (https://github.com/r0x0r/pywebview/) which is a Python lib that uses whatever native webview implementation exists. Obviously means some compatibility work between each OS, but gives out very small apps what work very well on the whole. I'm using it on my cross platform email client (https://kanmail.io).

  • WatchHN

    Watch a thread on Hacker News, in a Lazarus based GUI

    I've decided to dust off my somewhat rusty Lazarus, GIT and GitHub skills to build a Lazarus application to follow this thread using the HN API hosted by firebase.

    I've never done anything like this (https/json) before but I suspect I'll be done in a day or two.

    I'm not near the MVP yet, but it does manage to fetch the data and count the JSON objects in it for the main body of this thread.

    With Debug info, the windows executable is 25 megabytes, without it 3.1 megabytes.

    Here's the github link: https://github.com/mikewarot/WatchHN

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts