Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Google Introduces Carlo, a Node.js Web Rendering Surface

Google Introduces Carlo, a Node.js Web Rendering Surface

Leia em Português


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


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.

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

Community comments

  • They will leead

    by Andreea Simona Cotofana,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    It a good work together!

  • Finally, a shift towards respecting resource usage?

    by Chloroform Cowboy,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Does this mean the industry is finally recognizing that I don't want to use their apps if they mean I can't also keep other apps open at the same time? Hopefully.

    Don't be blind to the reality of many of your users:
    - No one wants to have to launch a new operating system instance (ie. an exclusive installation of Chrome) for every app they have open — available RAM is limited on typical systems!
    - And to address a practice that accompanies such annoying Electron apps, additionally no one wants to spend their just-as-limited lower-latency storage budget (ie. the more expensive thus lower capacity non-spinning disc drive space they install apps into for performance) on uselessly retained copies of the previous three or more versions of your app.

    If you must insist on developing your app on top of the Chrome platform, at least [additionally(?)] offer it in a form utilizing a less ridiculously wasteful approach such as this technology. More people like myself might tolerate opening/installing your app more often.

    (Of course this news comes at the end of the year, when I'm finally stepping beyond my means/budget to upgrade as a result of this unavoidably rampant & stressful waste.)

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

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