过去一年间,Node.js吸引了越来越多的目光;同时,一个叫做node-webkit的项目在Github上引起了越来越多的关注。在启动一年之后,node-webkit从一个默默无闻的项目成功跻身GitHub C++项目关注度排行榜前五强。在2012年的沪JS大会上,该项目的开发者之一赵成做过一个分享,对node-webkit是什么进行了一个介绍。2013年4月,台湾工程师钱逢祥在台湾的开源大会上也介绍了这个项目:这年头,你只需要懂node-webkit!另一方面,英文JavaScript圈子的知名社区JSJ也对node-webkit进行过讨论。最近吸引了很多开发者的新兴IDE工具Light Table,也是基于node-webkit开发的。
node-webkit是个什么样的项目,引起这样多的关注?近日,InfoQ编辑见到了这个项目的发起人Rogerwang,向他了解了一些有关这个项目的情况。
node-webkit项目发起人简介:Rogerwang,真名王文睿,英特尔开放源码技术中心(OTC)的软件架构师。最开始,node-webkit是一个业余项目。现在,Roger可以在工作时间进行这个项目的开发,而且有一个实习生跟他一起工作。
InfoQ:根据我的理解,node-webkit是通过Node.js和WebKit技术的融合,提供一个跨Windows、Linux、OS X平台下的客户端应用开发的底层框架,跟移动终端上的PhoneGap等项目的原理类似,不知这么理解是不是正确?你自己如何介绍node-webkit的目的和实现原理?
王文睿:是的。通过Node.js和WebKit技术的融合,开发者可以用HTML5技术编写UI,同时又能利用Node.js平台上众多library访问本地OS的能力,最终达到用Web技术就可以编写桌面应用的目的。
实现上是基于Chromium项目的Content Layer构建(Chromium Browser也同样基于Content Layer);实现上的特点是把Node.js的消息循环(libuv)和Chromium Renderer进程的消息循环合并到一起,因为这样才能从DOM(HTML)中直接调用Node.js提供的函数;把Node.js使用的V8引擎和Chromium的V8引擎合并,使得Node.js的Javascript和DOM里面的Javascript可以互相访问;另外因为是支持本地应用,所以安全模型和Web程序有很大不同:node-webkit程序可以做web应用不允许做的很多事情,除了通过node.js访问本地OS以外,还可以进行跨域访问等操作。
InfoQ:你是怎样开始了解WebKit和Node.js的?怎么就想到将这两个技术结合到一起,提供一个这样的方案呢?
王文睿:平时的工作和WebKit有关,所以平时也会去了解Web领域相关的技术,所以大概了解Node.js项目的状况。2011年底的一天,我们同事在工作会议上讨论如何为WebKit或者web runtime添加扩展接口API的时候有了这个想法。
InfoQ:你自己如何评价目前项目的完成状态?当前的node-webkit适合开发哪些需求的客户端应用,不适合开发哪些需求的客户端应用?
王文睿:现在已经达到一定的成熟度。有不少公司和各种项目基于node-webkit开发。node-webkit适合了解Web技术(JS/HTML/CSS)的开发者开发各种桌面应用,而且直接支持3种主流桌面平台。
目前它还不支持移动平台。另外也不支持嵌入到其他C++软件中。
InfoQ:node-webkit目前在Github上已经有将近4000个star,360个fork。这个项目目前来自你们团队和外部团队的贡献情况如何?
王文睿:绝大部分代码来自于内部的两个开发者。另一位开发者(Zhao Cheng)在这里实习的半年多期间主要的贡献是开发native UI支持,以及将架构从CEF迁移到Content Layer。
我们一直欢迎和鼓励外部贡献代码。目前来自外部的代码比较少,原因可能是我们的用户大部分是Web开发者,而我们的代码却是C/C++编写的。
InfoQ:你对node-webkit的下一步计划是什么?是否有计划根据这个项目打造一些更加易用的产品?
王文睿:目前的重点主要是进一步增强功能(我们的用户在GitHub的issue上报了很多的feature request)和壮大社区(希望有更多的开发人员加入我们的开源项目)。node-webkit平台本身非常灵活,我们欢迎大家利用node-webkit提供多样的产品和服务。
相关推荐
Node-WebKit是一个结合了Chromium和Node.js的强大框架,旨在为开发者提供一个利用Web技术(如HTML5、CSS3、JavaScript等)来构建跨平台桌面应用的环境。通过Node-WebKit,开发者可以将网页代码转换为具有本地功能的...
"nw.js"(原名node-webkit)是一个开源项目,它允许开发者使用Web技术构建跨平台的桌面应用。 描述中提到,“从官网上下载安装包没有代理非常的慢”,这暗示了开发者可能遇到网络访问限制或速度问题,因此分享这个...
Node-WebKit 是一个创新的开源项目,它融合了 Chromium 浏览器和 Node.js 的功能,允许开发者使用 HTML5、CSS3 和 JavaScript 开发桌面应用程序,并实现跨平台运行。相较于传统桌面应用,这种基于Web技术的开发方式...
**NW.js**:原名Node-Webkit,是一个让开发者可以使用HTML5、CSS3、JavaScript等Web技术开发桌面应用的框架。它将Node.js环境和Chromium浏览器组合在一起,使得开发者可以利用Node.js的模块系统和Chromium的渲染引擎...
nw.js,原名node-webkit,是基于Chromium浏览器内核和Node.js环境构建的应用程序运行平台,它允许开发者使用JavaScript、HTML和CSS来编写桌面应用程序,同时拥有访问本地文件系统、硬件设备等Node.js能力。...
用于构建移动跨平台UI的框架。 安卓 的iOS HTML5 支持Android 4.1(API 16),iOS 8.0+和WebKit 534.30+。 对于Windows 请安装并在git-bash中运行以下所有命令。 认识Weex 安装以查看我们已经编写的示例。 如果...
- **标准概述**:Web标准主要包括HTML标准、CSS标准以及JavaScript标准,旨在提高网页的可读性、可维护性和跨平台兼容性。 - **作用**:确保网站在不同浏览器和设备上表现一致,提升用户体验。 **2. 浏览器内核...
9. **跨平台**:尽管这里提供的是Windows版本,但PhantomJS本身是跨平台的,还支持Linux和macOS系统。 关于标签中的“node.js”,PhantomJS可以通过Node.js的子进程模块(child_process)调用,实现从Node.js应用...
Node-WebKit是一个开源项目,它允许开发者使用HTML5、CSS、JavaScript和Node.js API来创建桌面应用程序。在这里,“out”可能是指生成的最终应用程序的输出目录。 在滚动冒险的实现中,JavaScript库如Phaser、Three...
在IT行业中,HTML和PDF是两种常见的文档格式,它们各自有着不同的应用场景。HTML主要用于网页设计和动态内容展示,而PDF则...在实际项目中,还需要根据性能、稳定性、跨平台支持等因素来评估和选择最合适的解决方案。
它旨在确保你的代码在不同浏览器环境下都能正常运行,这对于开发跨平台的Web应用至关重要。 ### 快速开始 要开始使用 `ishinTest`,首先确保你已经安装了Node.js和npm(Node包管理器),因为项目依赖于它们来管理...
JavaScript虚拟化是现代Web开发中的关键技术之一,它允许开发者通过模拟JavaScript引擎来执行代码,从而提高性能、优化资源管理和实现跨平台兼容性。在本文中,我们将深入探讨JavaScript虚拟化的概念、工作原理以及...
这个版本可能已经与特定的nw.js(Node.js的Webkit版本)环境进行了兼容性优化,使得开发者可以轻松地在nw.js环境中使用SQLCipher。 标签"sqlcipher sqlite3加密"进一步强调了该资源的核心功能——对SQLite3数据库...