在 Google 本地客户端(NaCl)的 SDK 在 7 月底发布稳定版之后,宣布一年多的NaCl 终于在昨天首次被应用于Chrome Beta 中。它将会随着Chrome 14 一起发布。使用0.5 版的SDK 编译的应用程序的ABI(应用程序二进制接口)将会保持对未来Chrome 版本的兼容性。而使用早期SDK 版本编译的应用程序需要重新构建,因为它们并不兼容最新的ABI。
NaCl 是一个源代码开放,格式开放的项目。它的目标是能够解决浏览器的性能问题,这个问题曾经被大量用户抱怨过,他们说,虽然 web 应用非常优秀,易于使用,但是速度太慢,离本地应用还有距离。NaCl 能够部分解决这个问题,因为使用 C 或者 C++ 编写的原生代码能够运行在一个被保护的沙盒环境中,并且网页可以访问这些代码,例如使用 Pepper API 的 HTML5 或者 JavaScript。NaCl 和 Pepper 是 Web 应用的增色剂,它们加入了一些缺失的功能,使 Web 应用更加完整。Google 认为,相比在浏览器外运行 NaCl 代码,在浏览器中运行的性能损失低于 5%。
开发者可以在 32 和 64 位 Windows 以及 Linux 平台,还有 32 位 Mac 平台下使用 Eclipse C/C++ 或者 XCode 开发 NaCl 模块。Google 承诺将会在未来加入 Visual Studio 对 NaCl 的支持。由于它是运行在 LLVM(低阶虚拟机)上,其他的语言也会在未来被支持,实际上现在正在开发包括 Objective-C 和 FORTRAN 在内的编译器。当前开发者需要为每一个平台构建NaCl 模块,不过在可移植本地客户端(PDF)加入之后,模块就将只需一次编译便可以到处运行。
NaCl 最开始使用 Netscape 插件应用编程接口(NPAPI),但是不久之后就转向 Pepper,因为 NPAPI 并不能“健壮地支持”“事件响应,进程外插件以及异步接口”。同样,NaCl 本来希望能够支持多浏览器,但是现在貌似只有 Chrome 将能够运行代码,因为其他的浏览器不支持 Pepper。
网络上已经有大量样例代码可供参考,但是它们只能够运行在Chrome 14 上。
评论