The team behind Node.js fork JXcore has taken the project entirely open source.

Oguz Bastemar, CTO for Nubisa (the company behind JXcore) announced the news in the blog post JXcore is now Open Source.

"We want JXcore to be a community driven open-source and open-governance project," Bastemar said.

Forked from Node.js 0.12 about 15 months ago, JXcore aims to extend Node’s capabilities to other platforms, and is a framework for developing applications for mobile and embedded devices using JavaScript, leveraging the Node ecosystem.

Explaining the reason for the open source move, Bastemar said "We consider JXcore itself a contribution to the NodeJS community as we intend to keep the core features compatible with Node. That’s why we open sourced JXcore prior to final stability updates, since we don’t want to make future decisions alone."

Bastemar went on to say this was not the sole reason for the open source move, citing also JXcore's small team, and there being both a lot to achieve and many things to do beyond their limited resources.

Asked why it has taken this long to open source the project, Ugur Kadakal, CEO of Nubisa, told InfoQ that when work first began on JXcore it included significant and mostly experimental features -- and it wasn't yet known if SpiderMonkey could be made to work with Node.

Kadakal says the team didn’t want to release JXcore until they had completed the critical changes -- and made sure they worked.

The team behind JXcore make clear that the fork is not competing with Node.js, instead their aim is to extend Node’s usage to beyond server based application.

Kadakal said:

Our goal is to complement Node ecosystem by extending it to mobile and IoT devices. This version of JXcore makes it possible for developers to compile their Node applications as mobile apps with the inclusion of SpiderMonkey. This opens up the whole Node ecosystem (110,000 modules and counting) to mobile developers. With the new architecture, we can also add a lightweight JavaScript engine, like Duktape, and turn JXcore into a platform for IoT devices.

JXcore's latest release features a multiple JavaScript engine design, including a wrapper for both SpiderMonkey and V8 engines. The JXcore team are also reportedly working on implementing a lighter JavaScript engine for IoT devices, and their own JavaScript engine, powered by an LLVM frontend.

Bastemar says that in JXcore the current macro system is "designed for both Mozilla’s SpiderMonkey and Google’s V8" and that it can be extended to other JavaScript engines or future versions of the current ones.

JXcore is released on Github at https://github.com/jxcore/ jxcore and there are many ways InfoQ readers can contribute to the project. On the coding side, the team welcomes help in improving stability and adding debugger support for SpiderMonkey. Help is also needed in improving JXcore's documentation and developing tutorials.

The JXcore team welcomes ideas from the community in terms of new features, with the current focus on supporting JXcore on WinRT, as well as stability improvements. Kadakal says the team want to be completely open and transparent about the direction of JXcore, and want the community help set its direction.

Details of the JXcore roadmap can be found at https://github.com/jxcore/jxcore/blob/master/doc/ROADMAP.md.