Duetto: A C++ compiler for the Web going beyond emscripten and node.js

logo_duetto_quadrato_192.pngLearning Technologies Ltd. has released a new Clang-based C++ compiler for the Web:

Duetto: a C++ compiler for the Web going beyond emscripten and node.js

From the announcement:

Today Lean­ing Tech­nolo­gies Ltd. releases duetto, a com­piler designed to develop integrated (back­end and fron­tend) web appli­ca­tions in C++. duetto is now avail­able to the pub­lic as FOSS here, and will be offered in a com­mer­cial pack­age with closed-source-friendly licens­ing soon.

[... duetto] allows to pro­gram both the fron­tend and the back­end of a Web appli­ca­tion in an inte­grated C++ code­base, com­pil­ing them respec­tively to JavaScript and native code.

Duetto com­bines the advan­tages of emscripten and node.js by allow­ing the pro­gram­mer to:

  • write web appli­ca­tions in C++, reusing exist­ing code and mak­ing port­ing of whole appli­ca­tions and games to the browser plausible.
  • code both the fron­tend and the back­end of a web appli­ca­tion in the same lan­guage and codebase
In addi­tion to this, duetto pro­vides some nice features:
  • Bring the robust­ness and proven scal­a­bil­ity of C++ pro­gram­ming to the Web
  • You can access all browser APIs directly. Duetto inher­its the C++ phi­los­o­phy of expos­ing the plat­form capa­bil­i­ties (and lim­i­ta­tions) to the users. There is no mid­dle man.
  • Duetto is based on LLVM/clang. An indus­try stan­dard C++ com­piler is a programmer’s best friend: code san­ity is ver­i­fied as com­pile time, includ­ing RPC signatures.
  • The LLVM tool­chain also guar­an­tees that a mind-blowing set of opti­miza­tions is run at com­pile time, gen­er­at­ing highly effi­cient code. This decreases the bur­den on JavaScript JIT com­piler at runtime.
  • Con­trar­ily to emscripten we do not try to emu­late a tra­di­tional address space using typed arrays, but directly map C++ objects to JS objects. This reduces mem­ory con­sump­tion since the garbage col­lec­tor can delete unused object.

Add a Comment

Comments are closed.

Comments (1)

0 0

Enis Bayramoglu said on Nov 2, 2013 10:50 PM:

I was actually very interested in this compiler until I've visited their company site and read "Duetto is based on the LLVM stack, and uses patent-pending algorithms to ensure the highest performance." (ironically under the section titled "We love C++")

What does it mean to have "patent-pendin algorithms"?
A. Uggh uggh I'm a clever monkey.
B. If you ever get the same idea as me in a long toilet session, I'll sue you into oblivion, so you'd better pay me!