Runs Centralized, Decentralized or Distributed

NeuroKernel applications are compiled into either Java byte code, JavaScript or Web Assembly. An application compiled to JavaScript/Web Assembly has the ability to plugin applications compiled in byte code running at server side, and vice-versa. This is a very important feature for companies to keep their propriety algorithms hidden from public eyes.

Transparent Runtime

NeuroKernel can be deployed to centralized servers by default. It is the de-facto way of deploying applications to the web today. NeuroKernel can be run completely at server side, or completely at client side. It is also possible to distribute parts to client and parts to server if desired. When run completely or partially at server side, NeuroKernel requires a J2EE servlet container and an RDBMS database. However, if it is to be run completely at client side then any web server can be used.

NeuroKernel system can live entirely on a peer-to-peer torrent network or decentralized storage system. It won’t need a web server if deployed like this. Applications can also be deployed solely to mediums like torrent networks. This pure decentralization is going to create a new application eco system on the World Wide Web. Applications can also be dragged and dropped to the NeuroKernel workstation from the native desktop in jar, zip or compiled JavaScript form giving extra layer of flexibility to the developers.

Small and Efficent

NeuroKernel is designed to be very small and high performance. It is tested for dozens of different scenarios for maximum stability and efficiency. Entire operating system can be executed at the client side inside a browser, or at the server side. It is also possible to distribute some modules of the system to run at the client and the rest at the server. This distributed modularization is the very strength of the system. NeuroKernel is abstracted over a protocol and event based architecture. The protocol-based system lets individual applications plugin other applications. This way, an application can distribute itself piece by piece all over the world but functions as one to the end user.