Данная технология отличается от своих аналогов в архитектуре. Перво-наперво, реализует элементарную систему клиент-серверного взаимодействия на основании данных из готового билда сайта. По существу, подобного рода идея означает практически полную независимость двух разных процессов. Например, в том же Electron и NodeWebkit, если мне не изменяет память, используется несколько модифицированные исходники движка или небольшая надстройка над самой логикой взаимодействия.
Что же, собственно, помогает им достигать уменьшения затрачиваемой памяти? Если я правильно понял изложенную в документации информацию, то подобного рода эффект реализуем не только из-за архитектуры взаимодействия, которую я описал выше, но и несколько облегчённой версией используемого движка.
Резюмируя всё выше сказанное, мы можем привести следующие данные:
1) Electron, NodeWebkit — используют модифицированную версию браузера или его логики, а также следует отметить тот факт, что именно они тянут за собой. Например, Electron тянет весь NodeJS, тогда как NodeWebkit — весь chromium.
2) Используется клиент-серверная механика взаимодействия. Вместе с запуском программы запускается сервер, который имеет базовый минимум функций для взаимодействия с системой. По поводу используемого языка для сервера сказать, что-либо конкретное не могу, но в некоторых источниках говорится о компилируемом происхождении.
3) Neutralino.js использует облегчённую версию движка. Если говорить точнее, то она не тянет его весь за собой. Отсюда также наблюдается экономия памяти железа конечного пользователя.
Недавно удалось немного поиграться с нейтролино. Мне нужно было подобрать платформу для разработки небольшой десктопной тулы с возможностью использовать современный js и, желательно, реакт.
К сожалению, нейтролино не зашёл. В первую очередь из-за отсутствия поддержки промисов. Вроде бы и бог с ними, за минимализм можно и потерпеть и пожить с коллбэками. Но при подключении реакта, оказалось что на сбилженном бинарнике для win 10 хуки не работают (хотя в дебаг режиме в браузере всё ок). Справедливости ради, на классах, работало, правда приходилось использовать устаревший синтаксис (привет bind).
Позже я узнал, что на windows для рендера используется движок IE и код может вполне работать во время дебага в браузере и не работать в бинарнике. Из-за этого я отбросил идею использовать neutrolino.
В качестве альтернативы я рассматривал electron, но он отпугнул размером в 100 мб для простенькой тулы.
Так же смотрел совсем уж эзотерические вещи типа proton-native и webView внутри javaFX приложения, но это показалось клиникой (извините, если кого задел).
В итоге я остановился на react-native-windows. Пусть он и сыроват, но разработка на нём идёт плавно, всё достаточно предсказуемо, знакомо и удобно. Я бы даже сказал, что под win работать с реакт нейтив удобнее, чем под мобилки. Как минимум не нужен медлительный эмулятор андроида :)
p.s. Установленное приложение на react-native-windows занимало 7мб.
Немного о Neutralino.js