Serdar Yegulalp
Senior Writer

Node.js fork JXcore goes open source, aims for mobile developers

news analysis
Feb 20, 20152 mins

The JXcore variant of Node.js bristles with intriguing features and aims to move Node into the mobile world

With all the noise surrounding the Io.js variant of Node.js, it’s easy to forget about another Node fork that’s been quietly percolating: JXcore. Last year it added multithreading (sort of) and the ability to turn Node apps into stand-alone executables — but at the cost of JXcore being a closed source project.

Earlier this week, JXcore’s creators undid that restriction, declaring JXcore an open source project and placing it under an MIT-style license. In addition, future editions of JXcore will endeavor to include JavaScript engines — plural — to make Node useful in mobile contexts.

In the blog post, JXcore’s developers describe how JXcore’s design makes it possible to incorporate multiple JavaScript engines. JXcore already works with multiple JavaScript engines and currently uses both the V8 JavaScript engine and Mozilla’s SpiderMonkey engine. One advantage to having SpiderMonkey under the hood: Node.js applications can benefit from using asm.js, a subset of JavaScript designed to compile at near-C/C++ speeds.

But mobile support is the big, long-term project. An earlier post noted that a lightweight version running on iOS is a goal for the newly open-sourced JXcore.

A similar project, Nodelike, aims to bring a “Node.js-compatible API” to iOS — by making use of the existing JavaScript engine, rather than bundling a new one. But Ugur Kadakal, CEO of Nubisa, the company behind JXCore, doesn’t believe this sort of approach will work in the long run.

“We had to modify a significant portion of the Node core to achieve multi-engine capability,” Kadakal wrote in an email, “as Node, by design, is tightly integrated with V8 and its API. That’s why there were several failed attempts, i.e. SpiderNode, in the past to develop a version of Node with SpiderMonkey. They all failed because of the significant amount of changes required.”

To that end, work is under way to implement “a lighter JavaScript engine for IoTs,” apparently powered by an LLVM front end. Such work echoes that done by Apple’s FTLJIT project and Emscripten, but JXcore faces a tough battle because of the tight memory and processor requirements for any mobile endeavor.

A caveat for those already using a build of JXcore: Only the most recent beta build of JXcore is available with open source licensing. Prior builds remain closed source for now.

Serdar Yegulalp

Serdar Yegulalp is a senior writer at InfoWorld. A veteran technology journalist, Serdar has been writing about computers, operating systems, databases, programming, and other information technology topics for 30 years. Before joining InfoWorld in 2013, Serdar wrote for Windows Magazine, InformationWeek, Byte, and a slew of other publications. At InfoWorld, Serdar has covered software development, devops, containerization, machine learning, and artificial intelligence, winning several B2B journalism awards including a 2024 Neal Award and a 2025 Azbee Award for best instructional content and best how-to article, respectively. He currently focuses on software development tools and technologies and major programming languages including Python, Rust, Go, Zig, and Wasm. Tune into his weekly Dev with Serdar videos for programming tips and techniques and close looks at programming libraries and tools.

More from this author