BT

Google Introduces Carlo, a Node.js Web Rendering Surface

| by Dylan Schiemann Follow 10 Followers on Nov 06, 2018. Estimated reading time: 1 minute |

Google announces an early release of Carlo, a Google Labs experiment for creating Node.js applications. Carlo leverages Puppeteer to communicate between Node.js applications and the Chrome web browser.

Electron is the current leader in providing tools for creating desktop applications with web technologies. In contrast to Electron, Carlo does not attempt to bundle a specific version of Chrome and Node.js together, but instead relies on whichever version of Chrome is installed on an end user's computer.

Carlo does not provide capabilities for making true desktop application alternatives such as changing the name, menu, or icon of the browser view. Instead, Carlo is more akin to running an application in a local application server and automating the viewing of that application within Chrome.

Puppeteer, Google's browser automation project that leverages the DevTools protocol, is the mechanism by which Carlo communicates with the Chrome browser instance.

Carlo-based applications do not need to release updates each time Chrome gets updated. The potential downside is that a new release of Chrome could break functionality within an application. Applications will return an error if unable to locate an installation of Chrome version 70 or higher.

pkg is recommended to package Carlo applications into executable binaries. In contrast, Electron provides a rich set of application building infrastructure.

Carlo is likely to reignite the debate on what is the web vs. what is not. Google engineer Alex Russell has previously argued that environments like Electron are not the web:

Many platforms have attempted to make it possible to gain access to “exotic” capabilities while still allowing developers to build with the client-side technology of the web. In doing so they usually jettison one or more aspect of the shared value system. They aren’t bad — many are technically brilliant — but they aren’t of the web.

The approach encouraged by Carlo should be well suited for Progressive Web Apps. Developers looking for full capabilities for desktop applications are likely to continue leveraging Electron.

Carlo is available under the Apache 2 open source license. Contributions are welcome via the Carlo GitHub project and should follow Carlo's contribution guidelines and Google's open source conduct guidelines.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss
BT