用于 Web 的 C++ 编译器:Duetto

jopen 10年前

Duetto通过允许编程人员做如下的事情,来组合emscripten和node.js的优势:

  • 用C++编写web应用,重用现有的代码,并且使得移植到浏览器的应用和游戏看起来和原生应用一样;
  • 用同一种语言和代码库编写web应用的前端和后端

另外,duetto提供一些非常好的特性:

  • 为web带来C++编程的鲁棒性和经过验证的可扩展性
  • 你可以直接调用所有浏览器的APIs。Duetto继承了C++暴露平台能力(以及限制)给用户的理念。不存在任何的中介;
  • Duetto是基于LLVM/clang的。工业标准的C++编译器是程序员最好的朋友:代码合理性在编译时被检查,其中包括RPC(远程过程调用)签名;
  • LLVM工具链同样保证了在编译时运行了一堆令人兴奋的优化,从而产生高效率的代码。这会降低JavaScript的JIT编译器在运行时的负担;
  • 与emscripten,我们没有尝试用类型化数组去模拟一个传统的地址空间,而是直接将C++的对象映射到JS对象。这降低了内存开销,因为垃圾回收器可以删除没有被使用的对象。

项目主页:http://www.open-open.com/lib/view/home/1384088552914