Equo Chromium:
The cross-platform browser for Java
Sebastian Sampaoli on October 25th 2022
Some years ago at Equo, we started to experiment with integrating the Chromium browser engine into Java desktop applications. With time, huge efforts, and several different implementations and re-architectures we delivered the SWT Chromium Widget and it became a successful solution for our customers using SWT and Eclipse RCP products. It allowed our customers to embed web content into their products in a reliable and performant way.
We contributed the project as open source but using an older version of the Chromium engine, and keeping the latest versions (and other enterprise features) only as a commercial offering.
Today we are bringing the proven Equo Chromium Java browser, based on an up-to-date Chromium Engine (v106) to the open source community, and not just for SWT, but in many flavors: SWT, Swing, Standalone (plain Java app without any graphical toolkit dependencies), Windowless (without GUI, for batch processing) and JavaFX (coming soon).
Java Desktop Applications
Desktop Java applications have suffered from the impossibility to integrate web technologies and provide modern user experiences. The major Java GUI toolkits: SWT, Swing, JavaFX, Compose for Desktop; all suffer from the lack of a proper embedded browser.
This has forced many desktop applications to migrate to other technologies like Electron, not because they wanted to do so, but because there was no option to keep their Java stack and provide modern web-based desktop user experiences.
With Equo Chromium we fixed this, giving a truly cross-platform browser for Java (Windows, macOS, and Linux and 64-bit, 32-bit, and ARM), using a proven and up-to-date engine. Being mostly a commercial solution it left many potential users behind, and we are now also fixing this.
Maturity
Equo Chromium SWT has been used by hundreds of commercial products and it's also being used in mission-critical applications by thousands of users.
We have released many major versions and hundreds of minor and patch versions (once or twice per month). With the invaluable feedback from our customers and through many different integration scenarios and use cases, the implementation has been truly hardened.
Performance has got equal to a standalone Google Chrome, with hardware acceleration and an efficient use of CPU and memory.
Besides supporting our customers, Equo Chromium is the foundation for the Equo SDK, our end-to-end solution for modern Java desktop applications.
Performance
Equo Chromium has the best performance that an embedded browser can have. Given the architecture and how we integrate it, the Chromium engines take care of directly handling the window that you see and drawing the pixels on it.
There is no copy of pixels and buffers across processes and it has native event handling, without input event translation or mimicking So there is from very little to no overhead.
It's a multi-process architecture that ensures a problem in a browser cannot affect another and takes advantage of the multiple cores available in a computer. It also isolates the Java process from potential crashes on the rendering processes.
License
Equo Chromium is dual-licensed under commercial and open-source licenses. The open-source repository is licensed under GPLv3. And different commercial tiers are available for companies requiring support or enterprise features.
Future
The open-source project will contain an up-to-date Chromium version, likely the latest available, with frequent releases and ready-to-use binaries and sample projects for a quick start. The documentation site will also be improved as we get more feedback from the community.
We will continue to focus on delivering the enterprise features and the best support required by our customers in the commercial tiers.