Currently I'm guessing https://tauri.app/ would be the easiest way to get away from electron.
There are some suggestions, on Mozilla's suggestion platform Mozilla Connect, for turning Gecko into something like Electron[1][2].
In the past, Mozilla ran the Positron project, which was an Electron-like library on Gecko[3].
[1] https://connect.mozilla.org/t5/ideas/create-an-alternative-t...
[2] https://connect.mozilla.org/t5/ideas/ability-to-embed-gecko-...
Some abandoned modern alternatives included Chromeless[1], Positron[2][3] and qbrt[4][5].
While technically possible using Firefox's XULRunner functionality (`firefox --app app.ini` — mostly undocumented, potentially unsupported in the future), as far as I can tell, Mozilla has abandoned the Electron approach for XUL/Gecko bundling, which is a shame since Firefox itself is basically just an implementation on top of the Gecko XUL runtime.
> "[Firefox] is distributed as the combination of a Gecko XUL runtime — libxul, other shared libraries, and non-browser-specific resources like those in toolkit/ — plus a Firefox XUL application — mostly just the files in Contents/Resources/browser/, plus the 'firefox' stub executable that loads Gecko and points it at a XUL application" [6]
On Android, there is also Geckoview[7][8] for embedding gecko.
[0]: https://en.wikipedia.org/wiki/XULRunner
[1]: https://github.com/mozilla/chromeless
[2]: https://github.com/mozilla/positron
[3]: http://web.archive.org/web/20210227132731/https://mykzilla.o...
[4]: https://github.com/mozilla/qbrt
[5]: http://web.archive.org/web/20210601133844/https://mykzilla.o...
[6]: http://web.archive.org/web/20210227132731/https://mykzilla.o...
AFAIK the only thing around nowadays is GeckoView [2] for Android.
[0]: https://github.com/mozilla/positron [1]: https://mykzilla.org/2017/03/08/positron-discontinued/ [2]: https://mozilla.github.io/geckoview/
Sorry, I should have clarified a bit more — I'm writing a cross-platform desktop application that has a preact[0] frontend (+ a Go backend) using `firefox --app application.ini`.
I have been experimenting with performant lists (which is why I brought up the XUL tree — it's currently central to the interface, though not the final implementation for sure) — I'm currently only using the XUL window/menubar elements in order to populate the native macOS menubar.
I am a fullstack web dev in my day job, so my goal here is to write a fast, easily extendable UI that I can quickly iterate upon using modern html/js/css/etc.
I love gecko and used to write XUL add-ons many years ago, so I'm already familiar with JS code modules, XPCOM, XUL, the internal browser architecture etc.
Basically, I'm now using XULRunner (`firefox --app application.ini` as previously mentioned — will eventually be stubbed into a native macOS .app/OS program) as a replacement for Electron / Chromium Embedded Framework[1].
I'm basically doing the same thing as Positron[2]/qbrt[3].
[1]: https://en.wikipedia.org/wiki/Chromium_Embedded_Framework
On the bright side, Servo is designed for embedding, although it's a lot more work than something like XULRunner or Electron.
https://developer.mozilla.org/en-US/docs/Archive/Mozilla/XUL...
Mozilla briefly developed Positron, which was an Electron-compatible app shell that used Gecko instead of Chromium/Node.js/V8. Positron has also been discontinued.
https://github.com/mozilla/positron
The developer who was working on Positron went on to develop qbrt, which is a CLI interface to a Gecko app runtime. The project is unstable, and the last commit date is Jun 30, 2018.
https://github.com/mozilla/qbrt
Another Mozilla developer has a project called servoshell, which is an embeddable version of Servo. It's described as work-in-progress, and the last commit date is Jan 7, 2018.
https://github.com/paulrouget/servoshell
I'm afraid this is it for now, since embedding Gecko is no longer unsupported by Mozilla.
https://developer.mozilla.org/en-US/docs/Mozilla/Gecko/Embed...
Hopefully, Mozilla will continue working on embeddable versions of desktop Gecko after they release the necessary improvements in Firefox.
It should be noted there have been side projects to back nodejs with spidermonkey [0] and have electron APIs backed with gecko [1].
I agree with you and the thing I want more than anything is a cross platform browser engine embeddable with a supported C API that's not Chromium. Servo was on its way, but work has definitely slowed. But I acknowledge that even though I would build my own browser UI on top of an embeddable gecko engine, it probably won't affect adoption that much to be worth the effort.
0 - https://github.com/mozilla/spidernode 1 - https://github.com/mozilla/positron
Tried, but abandoned presumably based on prioritization: https://github.com/mozilla/positron. I was hoping Servo would help here, but from the outside looking in, the pieces are being moved into FF proper and the Servo browser's priorities have been reshifted to being a part of the VR team. Sure they're still making a general use browser (and that's quite a feat), but the embeddability game may suffer (I believe conforming to the CEF iface that was there original goal has become stale).
but they failed: "As noted in the blog post Positron Discontinued [1], this project has been discontinued. The source remains available, and you're welcome to reuse it." [1] https://mykzilla.org/2017/03/08/positron-discontinued/
Looks like positron used to do this but is now dead :( https://github.com/mozilla/positron
Another lightweight alternatives to Electron are: Mozilla Positron (https://github.com/mozilla/positron), Webkit for Android/Windows (https://github.com/daewoong-jang/webkit-android) and Qt Quick (https://www.qt.io/qt-quick/).
2) Firefox iOS uses WebView not by choice, but because of Apple's App Store restrictions.
Even when it did work, working with XPCOM sucked.
Positron https://github.com/mozilla/positron is the new XULRunner. WIP, doesn't actually work yet. :-(
Some are just starting to land after literally years of work:
You might be more interested in reading about platform improvements like getting Servo/Rust components into Gecko: https://blog.servo.org/2016/05/09/twis-62/
Or progress in multi-process support (codename e10s): http://arewee10syet.com/
While these are focused on Firefox to improve performance, stability and responsiveness, there are also experiments like the Positron project, which is making Gecko able to host Electron applications: https://github.com/mozilla/positron