Thread overview
GUI library for Windows with static binding
May 01, 2023
blueberry
May 01, 2023
Commander
May 01, 2023
Adam D Ruppe
May 01, 2023
sai
May 01, 2023
sai
May 04, 2023
Jacob Carlborg
Jun 09, 2023
Daniel X
Jan 10
user
May 03, 2023
Ogi
May 01, 2023

Hello folks! :)

I am a software engineer and started recently working with D; I really love the design of the language!

Now, for a current project of mine, I am having a very special constraint. I need to create a tiny client-desktop application for the Windows platform, which shall be shipped as a single executable only. So far, I have tried out different GUI libs available for D, however all of them rely on dynamic binding, i.e. I would need to ship the executable together with DLLs. Is there any solution for this?

Best,
blueberry

May 01, 2023

On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:

>

Hello folks! :)

I am a software engineer and started recently working with D; I really love the design of the language!

Now, for a current project of mine, I am having a very special constraint. I need to create a tiny client-desktop application for the Windows platform, which shall be shipped as a single executable only. So far, I have tried out different GUI libs available for D, however all of them rely on dynamic binding, i.e. I would need to ship the executable together with DLLs. Is there any solution for this?

Best,
blueberry

webview2 or windows api directly. or statically link any c or c++ solution

May 01, 2023
On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:
> I need to create a tiny client-desktop application for the Windows platform, which shall be shipped as a single executable only.

My minigui.d can do that pretty easily, built mostly on normal Windows controls.

https://code.dlang.org/packages/arsd-official%3Aminigui

https://github.com/adamdruppe/arsd
(git clone it then use dmd -i for best results, but you can also get the individual files needed for just this: color.d, simpledisplay.d, minigui.d, textlayouter.d, core.d)

http://arsd-official.dpldocs.info/arsd.minigui.html

There's also a webview wrapper for it if you wanted to but prolly don't need it for a tiny simple thing.

Some parts of it are a bit weird to use but you can ask me for some help to get started.
May 01, 2023

On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:

>

Hello folks! :)

I am a software engineer and started recently working with D; I really love the design of the language!

Now, for a current project of mine, I am having a very special constraint. I need to create a tiny client-desktop application for the Windows platform, which shall be shipped as a single executable only. So far, I have tried out different GUI libs available for D, however all of them rely on dynamic binding, i.e. I would need to ship the executable together with DLLs. Is there any solution for this?

Best,
blueberry

I am in a similar boat.

Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code.

Some solutions that worked for me are:

  1. Dlang + DWT.
    I feel that DWT is very mature, has lots of widgets (since its port of SWT), has very good configurability. (like easy to change font sizes, image + text in buttons, almost no crashes from bugs, etc). Tonnes of documentation and examples on web (very important). I love this option so much that I am even trying to port latest SWT to D. But 600 java classes just for SWT is no joke. Currently exploring if I can use JavaParser to automate this.

  2. Python + Tkinter or PySimpleGui + PyInstaller + auto_py_to_exe
    To create a standalone executable. Like it or not, more people know Python than D, so more preferable when working with colleagues. Executable size is 5mb larger, large but not bad. PySimpleGui is fun.

  3. C++ + Ultimate++
    Nice all in one package, including compiler. But C++. Error messages are wild especially when using templates.

  4. Bundle Java app + JRE runtime with Jlink.
    Very large bundle, runs in 30-40MB. But I can use Netbeans + swing + Gui builder ... small app development done in minutes! Even with complicated layouts.

For some reason I never liked using browser or webview, etc. Mucking with HTML, javascript, etc makes me lose interest quickly.

May 01, 2023

On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:

>

On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:

>

[...]

I am in a similar boat.

Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code.

[...]

For option-2, I can even use Cython to hide my top secret business logic, works very well.

May 03, 2023

On Monday, 1 May 2023 at 09:24:56 UTC, blueberry wrote:

>

I need to create a tiny client-desktop application for the Windows platform, which shall be shipped as a single executable only.

I’m currently working on bindings to NAppGUI. Seems to be just what you need.

May 04, 2023

On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:

>
  1. Dlang + DWT.
    I love this option so much that I am even trying to port latest SWT to D. But 600 java classes just for SWT is no joke. Currently exploring if I can use JavaParser to automate this.

I started creating a tool for this, many years ago: https://github.com/d-widget-toolkit/jport.

--
/Jacob Carlborg

June 09, 2023

On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:

>

Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code.

For you specifically, Delphi or FPC/Lazarus would be the clear winners - no fuss, rapid Windows development, self-contained and small .exe results.

It is however, a matter of whether you can tolerate the downgrade to a relatively primitive language ...

January 10

On Friday, 9 June 2023 at 16:44:26 UTC, Daniel X wrote:

>

On Monday, 1 May 2023 at 19:22:41 UTC, sai wrote:

>

Requirements: Small GUI apps on Windows. Absolutely no dynamic or runtime libs (dlls, etc). All files must be statically linked/packaged into a self contained executable. Need to develop apps really really fast. Small size preferable, but not a must. Should have very good documentation, I should not have to see the library source code.

For you specifically, Delphi or FPC/Lazarus would be the clear winners - no fuss, rapid Windows development, self-contained and small .exe results.

It is however, a matter of whether you can tolerate the downgrade to a relatively primitive language ...

Replying to an old message, but since then I found a perfect solution that works for me: Ultimate++ (U++): https://www.ultimatepp.org/

It's in C++ and a self-contained zip file, including compiler, libs and IDE.