JXcore is a Node.JS distribution (forked from v0.12) with additional features. Our goal was to support multiple (isolated) instances running on the same process without limiting capabilities of the framework since Google’s V8 engine already supports multiple and concurrent isolates. Every single isolate has its own heap memory and garbage collection!
Any single threaded application can benefit from multithreaded core without any code or behavior change. Please note that ‘multi threading’ term used here refers to multiple separate instances inside the same process but different threads.
Under certain conditions, multiple isolates make JXcore more responsive and capable of handling expensive operations comparing to multi process models because of not having cross process communication and synchronization. Besides the performance gain, it also helps reaching beyond V8′s memory limitation. Every single thread has its own ‘separate’ heap memory space.
Code protection & packaging is another feature of JXcore. It offers complete source code protection for your server side java script code and combine all the related files into one.
JXcore also includes a clustering capable Messaging API with Android, iOS, .NET, Mono and Browser clients.
Four years ago we started developing a Reverse AJAX and WebSocket library for .NET called PokeIn (www.pokein.com). After tens of thousands of downloads and hundreds of clients, we decided to port our technology to a different platform and build a set of API libraries to simplify application development. We decided to port our technology to Node.js. However, we realized that the current Node.js structure was not sufficient to develop our application. So we started making changes on the core libraries. Our changes were so significant that we had to make a fork and build a separate package from the official Node.js. We called it JXcore and decided to make it available to the community.