Duetto (C++ for the Web) to be released soon: licensing model


logo_duetto_quadrato_192

Duetto — our C++ com­piler for the Web — is get­ting close to its first pub­lic release, due in a few days, and we would like to spend a few lines to present and explain our licens­ing model, as many peo­ple have been ask­ing recently.

When we started  work­ing on duetto around a year ago, we knew that we were going to release it as a FOSS project. We believe that duetto, by enabling truly seam­less client/server C++ pro­gram­ming, can become a corner-stone of Web appli­ca­tions and games devel­op­ment. But this can only hap­pen if an ecosys­tem of libraries, exten­sions and frame­works will be built around duetto itself. We know that the only way for this to hap­pen is to make the core of our tech­nol­ogy avail­able to every­one, for free. In addi­tion to that, since duetto is heav­ily based on the LLVM/clang frame­work and could not have existed oth­er­wise, we really feel that giv­ing back to the com­mu­nity is the most fair thing to do.

At the same time, we have also always been deter­mined to build a com­pany around this project. For this rea­son, we will be offer­ing a pre­mium pack­age that includes the same core FOSS tech­nol­ogy plus per­son­al­ized sup­port, pro­pri­etary friendly licens­ing and aux­il­iary perks includ­ing, but not lim­ited to, inte­gra­tion with devel­op­ment environments.

Let’s now talk licenses. The duetto com­piler itself is derived from LLVM and clang, both released under the Uni­ver­sity of Illinois/NCSA Open Source License. We are releas­ing our duetto com­piler under the same license, both to make it eas­ier for the com­mu­nity to con­tribute with code, to con­tribute back with some of our code to LLVM and clang, and because it does not make much sense to use a dual licens­ing scheme on a compiler.

In addi­tion to the com­piler, there are a bunch of head­ers and libraries which are essen­tials to develop using duetto. All those will be released under a clas­sic dual licens­ing scheme: GPLv2 for every­one and a pro­pri­etary non-copyleft license for pay­ing customers.

To sum­ma­rize, here is how duetto licens­ing will work:

  • duetto core com­piler: Uni­ver­sity of Illinois/NCSA Open Source License (like the LLVM and clang projects)

  • duetto core libraries/headers: dual license GPLv2; pro­pri­etary non-copyleft license avail­able for a fee

  • duetto pre­mium fea­tures: pro­pri­etary and closed source, avail­able for a fee

We think this choice rep­re­sents a good bal­ance between being open and giv­ing back to the open source com­mu­nity, and build­ing a viable busi­ness model. We hope the open source com­mu­nity will appre­ci­ate our choice!

 Fol­low us on twit­ter @leaningtech and visit our web­site http://www.leaningtech.com to get updates on our upcom­ing release and for fur­ther information.

  • Mark

    Nice! If you could use GPLv2+ it would be per­fect (would allow com­bin­ing with GPLv3 and AGPL which are used more and more).

  • http://joshtriplett.org/ Josh Triplett

    Sec­onded; quite a few libraries and pro­grams I might want to com­pile with Duetto are GPLv3, and a small hand­ful are AGPLv3.

  • Al

    I won­der why it is ver­sion 2 to start with.

  • Ólafur Ara­son

    Hi, I think what you are doing is very inter­est­ing and I’m look­ing for­ward to see what becomes of this project and I’m really glad that I will be able to play with it as an open source project. About the head­ers I don’t like the ambiva­lence of how they are treated in copy­right terms. So I would per­son­ally not like to see any licence in the head­ers them selves, they are meant as a link­ing mech­a­nism and too often have some logic stuck in them which often sucks when for exam­ple com­pil­ing c in a c++ com­piler. You aren’t link­ing to the head­ers them selves.

    http://www.americanbar.org/publications/landslide/2012_13/november_december/java_api_copyrightability_put_the_test_smartphone_technology_battle.html

    http://lkml.indiana.edu/hypermail/linux/kernel/0301.1/0362.html

    An other thing about the licence I think that it makes a lot of sense to do but I would be smart about it and do some­thing like Qt did before it went with LGPL licence:

    http://docs.huihoo.com/qt/4.4/license-gpl-exceptions.html

    Then you don’t have to answer 100 dif­fer­ent ques­tions with peo­ple using the soft­ware for code that’s already in the open source ecosys­tem. It still stands that the soft­ware is under GPL but now if it com­plies with those def­i­n­i­tion of open source for the rest of the soft­ware then it’s ok to link to your libraries.

  • apig­notti

    I have been not pre­cise enough in the post. The license text is the default GPLv2, which is actu­ally already GPLv2+

  • apig­notti

    About mak­ing an explicit GPL excep­tion we don’t feel con­fi­dent right now
    about using non-standard licenses, but we may con­sider that in the
    future. About the head­ers, we believe they are fully copy­rightable,
    because they are non-trivial mar­shal­ing of Web APIs to make them
    avail­able to C++ code and not just a link­ing mechanism.