Licensing Options

The Moddable SDK is offered with two different licensing options. This approach to licensing is commonly known as "dual-licensing."

Free and Open Source Software (FOSS) license

  • Open Source, include our software in an existing Open Source project
  • Personal Use, use our software to kick-start a non-commercial project
  • Evaluation, evaluate our software before purchasing a Commercial License

Commercial software license

  • Commercial Use, for software embedded in a commercial product with closed source
  • Technical Support, option for project specific, private support for faster, more robust development

Open Source licenses used

There are a number of different FOSS licenses used in the Moddable SDK. Here are the licenses we use:

  • LGPLv3. This license is used for our runtime software, that is software intended to be deployed in an embedded/IoT device.
  • GPLv3. This license is used for software tools used to build applications. These tools include our JavaScript compiler, linker, and debugger.
  • Creative Commons Attribution 4.0 International License. This license is used for our example code.

Files from other FOSS projects use other licenses, all of which we believe to compatible with the licenses above. Of particular note, portions of XS are licensed under the Apache V2 license. Each file carries a license statement, so check the source code of the files you are using to understand the requirements of its license.

Commercial license

We understand that FOSS licensed software does not meet the needs of all organizations or independent developers creating software for embedded devices. In our work with organizations, large and small, building embedded software we have encountered many different reasons why FOSS is not a viable option, particularly for mission critical aspects of a product. We want these organizations to be able to use our software. Because these organizations are not contributing by making their own code available to us and others under a FOSS license, we believe it is fair to ask them to pay a license fee for the use of our software to help support our on-going software development.

Additionally, organizations expect warranties, IP provenance, patent rights, on-demand bug fixes, and development assistance from the software they license for use in their products. These have a real cost and require a full time staff.

It is common in the embedded software space to only provide licensing pricing under a non-disclosure agreement. There are good reasons for this, especially since each potential licensee has unique circumstances which can change the license cost and terms. Still, we don't like it when we are asked to sign an NDA to receive a simple price quote. In the interest of promoting the kind of transparency we'd like to see in the embedded software market, we provide our licensing costs publicly.

For use of the Moddable SDK in a product using a commercial software license, Moddable charges twenty-five cents (US dollar) per unit. This price is valid for any volume. If you are a small shop shipping 1000 units of an embedded device, the commercial license is truly only $250.

We understand that organizations shipping a large volume of products may feel a volume discount is appropriate. We are open to that discussion.

Our commercial license includes:

  • All runtime software in the Moddable SDK - XS JavaScript engine, Piu user interface framework, Commodetto graphics engine, network protocols, TLS/SSL, platform ports, etc.
  • Representations of Moddable's ownership rights and right to license
  • Warranty
  • Licensee's right to modify
  • Right to use relevant Moddable patents
  • Bug fixes
  • Development support
  • No charge for development tools (i.e. no per-seat development license)

Note: Support level commensurate with licensee's product volume.

The pricing quoted here applies only to products that obtain a commercial license to the Moddable SDK prior to shipping the Moddable SDK. Products that ship without first obtaining a commercial license do so under all applicable FOSS licenses.

Any large organization will have its own particular requirements. We are open to reviewing those to find a way to support them if at all possible.

For questions about the Moddable SDK commercial license, contact us here

Why open source?

Moddable offers an FOSS licensing option because we believe it is the right thing to do.

  • The focus of our work is embedded computing devices, commonly called IoT. The challenges of embedded software development make it a practical necessity for programmers to have the full source code for the SDKs they use.
  • By making our SDK available with a FOSS license, individuals and organizations can easily experiment with the SDK to determine if it meets their needs.
  • Our software is available to everyone to review, which helps to keep us vigilant in our development and results in a more robust product. We have fixed issues based on reports from external developers about flaws and oversights in our GitHub repository.
  • We have learned a great deal by studying the source code others have made available through various FOSS licenses. We use the source code of others in the Moddable SDK thanks to FOSS licenses. We want to give back by sharing our knowledge through our code too.
  • We believe the black-box nature of too many IoT products creates security and privacy risks for everyone. We want to see more IoT products be more open. Making our own software open is a step towards a future we believe in.

Background on choice of open source licenses

The selection of a FOSS license to use for the Moddable SDK was difficult. We have a bias towards licenses that oblige improvements and fixes made to our code be shared with everyone. We believe that's only fair. Where the Moddable SDK incorporates other FOSS software, we have published any changes we made. The Mozilla Public License (MPL) is a license which incorporates this requirement. In fact, a very early version of portions of the Moddable SDK was briefly released using the MPL.

A key consideration in selection of an FOSS license for the Moddable SDK is the license status of XS, our JavaScript virtual machine. XS was created by Kinoma and originally available only under a proprietary commercial license. When Marvell acquired Kinoma, one happy consequence was publishing our work on XS as FOSS. At Marvell we selected the Apache V2 license. The selection was a result of many factors, but one stands out. Android uses the Apache license, which meant it was already acceptable to many of Marvell's customers.

The licenses used for the Moddable SDK must be compatible with the Apache license used by XS. The Moddable SDK is built around XS. The tools are written in JavaScript and hosted by XS. The device runtime is primarily JavaScript code executed by a highly optimized XS host. Apache is an option, however it does not ensure that improvements and fixes are made generally available. There has been a great deal of energy put into establishing the compatibility between Apache and the GPL. While Apache and GPLv2 are considered incompatible, Apache and GPLv3 are considered compatible. As a result, we have selected LGPLv3 and GPLv3 as the primary licenses for the Moddable SDK.

Choose the right option for your project

By offering two distinct licensing options -- one open source and the other commercial -- we hope to make it possible for the majority of embedded software developers to use the Moddable SDK in their products. We recognize that no single option or two will satisfy everyone.

As an anecdote, when we made the decision at Marvell to provide our work on XS under the Apache V2 license, the very first customer we told about the decision responded with a room full of silence. They politely explained that they were more concerned about receiving development support and prompt bug fixes than they were about the cost of the software. They were happy to pay to know that someone stood behind the software they were using.

We also understand that there are very strong positions established regarding the many FOSS licenses. No doubt there will be those that disagree with our choices. Perhaps this article provides those who disagree with some understanding of our thought process.

The XS code at the heart of the Moddable SDK has been provided in many different ways: commercial license of proprietary code, Apache license, LGPLv3/GPLv3 license, and commercial license of FOSS code. Perhaps in the future there will be other licensing options. If you have suggestions, we would like to hear them.

Finally

Any good lawyer will tell you that this article is not legal advice or a binding contract.