如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

谷歌发布新的 Node.js Web 渲染界面 Carlo

  • 2018-11-22
  • 本文字数:907 字

    阅读完需:约 3 分钟

谷歌发布新的 Node.js Web 渲染界面 Carlo

谷歌发布 Carlo 的早期版本,这是谷歌实验室用来创建 Node.js 应用的实验性项目。Carlo 使用 Puppeteer 实现 Node.js 应用和 Chrome Web 浏览器之间的通信。


在使用 Web 技术创建桌面应用方面,Electron 目前是主导性的技术。与 Electron 不同,Carlo 并不会尝试将特定版本的 Chrome 和 Node.js 打包在一起,而是依赖于终端用户的电脑上已安装的任意版本的 Chrome。


Carlo 并没有提供构建真正桌面应用的功能,比如修改浏览器视图的名称、菜单或图标。相反,Carlo 更像是在本地应用服务器上运行应用并自动在 Chrome 中浏览该应用。


Puppeteer 是谷歌的浏览器自动化项目,它使用了 DevTools 协议,Carlo 使用这种机制与 Chrome 浏览器实例进行通信。


基于 Carlo 的应用并不需要在每次 Chrome 升级的时候发布更新。这种方式的潜在缺点就是可能会破坏应用程序中的功能。如果无法定位到 70 或更高版本的 Chrome,应用程序将会返回一个错误。


推荐使用 pkg 将 Carlo 应用打包到可执行二进制文件中。与之不同,Electron 提供了丰富的应用程序构建基础设施。


Carlo 可能会重新引发什么是 Web、什么不是 Web 的争论。谷歌的工程师 Alex Russell 曾说过像 Electron 这样的环境不是 Web 的观点:


很多的平台都试图在允许开发人员使用 Web 的客户端-服务端技术的前提下,让我们获取一些“额外(exotic)”的能力。按照这种方式,他们不得不抛弃共享价值体系中的一个或多个方面。这些方式说不上糟糕,甚至其中有很多人可以说是技术天才,但这并不是 Web。


Carlo 所倡导的方式应该非常适合渐进式 Web 应用(Progressive Web Apps)。为桌面应用程序寻求完整功能的开发人员可能会倾向于继续使用 Electron。


Carlo 可以在 Apache 2 开源协议下使用。现在,官方鼓励通过Carlo GitHub项目进行贡献,贡献过程应该遵循 Carlo 的贡献指南和谷歌的开源行为指南。


查看英文原文:https://www.infoq.com/news/2018/11/carlo-google-nodejs

相关推荐:


12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule


2018-11-22 14:564100

评论 1 条评论

发布
暂无评论
发现更多内容

AQS 条件队列机制源码分享

new life

AQS

DevOps实践中的“道法术器”

阿泽🧸

DevOps 9月月更

VUE v-for 数据引用

HoneyMoose

Spring @PostMapping 能在 URL 中带有参数吗

HoneyMoose

树莓派部署Elasticsearch6集群

程序员欣宸

elasticsearch 9月月更

【全网最全】你绝对没见过的,Alibaba内部的18份Java技术体系教程

程序知音

Java JVM 阿里 程序员面试 后端技术

为什么需要微服务

穿过生命散发芬芳

微服务 9月月更

【C语言深度剖析】深入理解字符数组和字符串数组

Albert Edison

C语言 9月月更 strlen 字符数组 字符串数组

【C语言】字符函数&字符串函数&内存函数(下)[进阶篇_复习专用]

Dream-Y.ocean

c c++ 9月月更

Lombok、JUnit——开发工具插件

胖虎不秃头

maven java; 9月月更

太赞了,使用应用魔方 AppCube,我没有写一行代码就开发出了一款投票微信小程序

wljslmz

微信小程序 低代码开发 AppCube 9月月更

AQS 阻塞队列机制源码分享

new life

AQS

VUE v-for 循环的 2 个使用

HoneyMoose

HTTPS TLS 1.2

懒时小窝

https HTTP

阿里前端常见面试题(附答案)

loveX001

前端 前端javascript

redis 作为缓存时存在的问题

想要飞的猪

redis 淘汰策略 redis缓存过期

Moment.js 如何对时间进行比较获得不同的天数

HoneyMoose

Java进阶(十五)Java中设置session的详细解释

No Silver Bullet

Java session Cookie 9月月更

LeetCode-1370. 上升下降字符串(Java)

bug菌

9月日更 Leet Code 9月月更

2022-09-11:arr是一个可能包含重复元素的整数数组,我们将这个数组分割成几个“块”, 并将这些块分别进行排序。之后再连接起来,使得连接的结果和按升序排序后的原数组相同。 我们最多能将数组分成

福大大架构师每日一题

算法 rust 福大大

ATDD的小妙用

Bruce Talk

敏捷开发 随笔 Agile

【JavaWeb】Filter系列——过滤器有什么用,如何编写?Filter过滤器的设计模式

胖虎不秃头

java; 过滤器 9月月更

Maven——自动化构建工具

胖虎不秃头

Web java; 9月月更

数据治理(十四):Ranger同步Linux用户

Lansonli

数据治理 数据安全 9月月更

字节架构师:来说说 Kafka 的消费者客户端详解,你都搞懂了吗?

Java快了!

Kafk

分布式锁有哪些实现方案各自有什么优缺点?

想要飞的猪

分布式锁 redis分布式锁 zookeeper分布式锁

库调多了,都忘了最基础的概念-《单例模式VS状态码》

知识浅谈

volatile 单例模式 9月月更

全到哭!从面试到架构,阿里大佬用五部分就把高并发编程讲清楚了

Java全栈架构师

Java 程序员 面试 程序人生 高并发

B-Tree索引

急需上岸的小谢

9月月更

阻碍【程序员职业发展】的 5 个“绊脚石”

掘金安东尼

程序员 前端 9月月更

Plasticine: 面向并行模式的可重配架构

俞凡

架构 网络

谷歌发布新的 Node.js Web 渲染界面 Carlo_大前端_Dylan Schiemann_InfoQ精选文章