Isomorphic-crystal : Updates :

On second view,

I think there is really a problem with Crystal WebView under Linux (it has nothing to do with HTMX: I wrote a quick minimalist version of HTMX and the result is the same).

I also suspected a problem caused by shared objects between processes, but eliminating said sharing of state does not solve the issue at hand either.

Having eliminated all other causes, I believe that the issue rests with WebView for Crystal (Linux version).

On short term, I will publish a version of I.C. which uses Chrome instead of Webview for the Linux platform, until I find a replacement for WebView

Perhaps, I will later try to use ECF instead of VebView.

The latest version of compiles now to two different versions, depending upon the platform (automatically detected at compile-time).

  • The Mac version uses WebView.
  • The Linux version uses Google Chrome as a replacement for WebView (the app still look the same and the functionalities are the same)

Both versions work now as expected.

Linux version:


In theory, the solution applied for Linux should work for Windows as well, mutatis mutandis.

(I’ll check it as soon as I build a new windows PC)

1 Like

Isomorphic Crystal now uses “Isomorphic” (a dedicated, lightweight, open source, browser based on the C++ source of WebView) instead of Chrome.

Isomorphic has to be installed before compiling (and/or before using) Isomorphic Crystal.


Hi, Makefile in Linux need all command must start with a TAB.

so, your Makefile not works on linux.

 ╰─ $ make
Makefile:12: *** missing separator.  Stop.

Check following fixed version screenshot.

Could you please try again. I tried to fix it?


1 Like

Got some warning while building, but the browser works fine!

➜  isomorphic git:(main) make
gcc -c isomorphic.c -std=c99 
In file included from isomorphic.c:1:
webview.h:2745:18: warning: missing terminating " character
 2745 |           js += R"js(;
      |                  ^
webview.h:2761:8: warning: missing terminating " character
 2761 | })())js";
      |        ^
g++ -c -std=c++11 -DWEBVIEW_STATIC  `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0` -o webview.o
In file included from
webview.h: In member function ‘void webview::detail::gtk_webkit_engine::eval(const string&)’:
webview.h:689:35: warning: ‘void webkit_web_view_run_javascript(WebKitWebView*, const gchar*, GCancellable*, GAsyncReadyCallback, gpointer)’ is deprecated: Use 'webkit_web_view_evaluate_javascript' instead [-Wdeprecated-declarations]
  689 |     webkit_web_view_run_javascript(WEBKIT_WEB_VIEW(m_webview), js.c_str(),
      |     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  690 |                                    nullptr, nullptr, nullptr);
      |                                    ~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/webkitgtk-4.0/webkit/WebKitPrintOperation.h:29,
                 from /usr/include/webkitgtk-4.0/webkit2/webkit2.h:72,
                 from webview.h:579,
/usr/include/webkitgtk-4.0/webkit/WebKitWebView.h:526:1: note: declared here
  526 | webkit_web_view_run_javascript                       (WebKitWebView             *web_view,
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
g++ isomorphic.o webview.o `pkg-config --libs gtk+-3.0 webkit2gtk-4.0` -o isomorphic 
1 Like

Thank you for your feedback!

These warnings are related to WebKit per se, I can only transmit the information to the developers of WebKit.

Glad to hear it appears to work.

I think, it is the best solution for far.

Hi, i suggest hide(or delete) those old/experimental isomorphic related projects in your github, i consider too much, don’t know which one is the current used library.


You’re right!

I’ll do some renaming / deleting / cleaning in the coming days.


The new repos are organised as follows:

Since the browser used by the examples has been modified, it is necessary to upgrade to the new version before trying to compile the examples.

git clone
cd isomorphic
make install

where is it rename to isomorphic-crystal-browser, right?

BTW: browser build successful, but segmentation fault use newest master. (it used to work)

 ╰─ $  isomorphic
Segmentation fault (core dumped)
  1. Yes, the dedicated browser (isomorphic) is at the URL : isomorphic-crystal-browser
  2. The usage is (for instance) : isomorphic -p -t Google -h 600 - w 800

(In the future I will add code to check for missing arguments and to display an help text).

1 Like

I did a fresh install (with the git clone)
Did a make, but not a make install, started the browser with the given parameters, but that also got a core dump:

➜  isomorphic git:(main) ✗ ./isomorphic -p -t Google -h 600 - w 800
Option -p (Path) with argument
Option -t (Title) with argument Google
Option -h (Height) with argument 600
[1]    12059 segmentation fault (core dumped)  ./isomorphic -p -t Google -h 600 - w 800

The example is broken, you can try like this:

 ./isomorphic -p -t Google -h 600 -w 800

Just added default values for isomorphic

Just added default values for isomorphic.

To install:

make && make install

Yes, it works now!

Added a third example: The same counter, but the buttons only react to double-clicks.

1 Like