Daniel, *> requiring user to install whole Node.js platform would seem to be too cumbersome*
Node is just a single standalone executable, you can drop it into your project and use it without it being cumbersome. The installer just puts the executable in your path and also installs npm (which isn't necessary for end-users of a desktop app that depends on node). It depends on your use-case, but in general I think you'll find it easier to run node.exe as a child process and to communicate with it via stdio, than to embed it or compile it as part of your main application. If you're interested in building a Windows GUI (not a console app) then you'll run into issues b/c Node is setup as a console app. It should be possible, but it would require changing the subsystem and providing some dummy stdin/stdout (more info here <http://grokbase.com/t/gg/nodejs/126m9gck69/windows-compiling-as-a-console-less-windows-application>, here <http://stackoverflow.com/questions/22653010/prevent-console-window-from-being-created-in-custom-node-js-build> and here <http://grokbase.com/t/gg/nodejs/14bxs07a4a/using-node-in-a-win32-gui-application-fails-stdin-stderr-stdout> ). As others have mentioned, nw.js <https://github.com/nwjs/nw.js> (formerly node-webkit) and atom-shell <https://github.com/atom/atom-shell> are the highest-profile platforms that do what you're looking for. nw.js actually merges the node.js and chromium event loops into one, so the project has to maintain a hacked version of node & a hacked version of Chromium. atom-shell, OTOH, follows the separate process approach outlined above. I've done something similar, creating a custom build of Chromium and communicating with the node executable via Chromium's native messaging <https://developer.chrome.com/extensions/messaging#native-messaging>. *> It would be especially undesired on mobile* Mobile is a different ballgame, especially if you want to put your app in iOS's App Store. If you're content with running your app on jailbroken phones, you can do it with NodObjC <https://github.com/TooTallNate/NodObjC>, but it won't run on an iPhone that isn't jailbroken b/c Node is tightly tied to v8 which does JIT compilation which isn't allowed on iPhones for security reasons. Instead you'll need to use a project that uses pieces of Node's implementation or just mimics Node's API with a non-JIT javascript engine like JavaScriptCore, such as Node.app/Nodelike <https://github.com/node-app/Nodelike> or neu.Node <https://github.com/snakajima/neunode>. If you're not married to Javascript, you might consider a C/C++ library that provide a node-like API (node.native <https://github.com/d5/node.native>, nope.c <https://github.com/riolet/nope.c>, node.c <https://github.com/trevnorris/node.c>, or a combo of tiny clibs <https://github.com/clibs/clib/wiki/Packages>) with skia <https://code.google.com/p/skia/> or cairo <http://cairographics.org/> for cross-platform graphics/GUI. -- Peter Rust -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/3bdd5b02-71a8-4728-a51b-03e311c34e88%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
